HTML(包括实体)在以表达式形式呈现时将以字符串形式呈现:
{htmlString}
Run Code Online (Sandbox Code Playgroud)
为了解析HTML,有dangerouslySetInnerHTMLprop:
<span dangerouslySetInnerHTML={{__html: htmlString }} />
Run Code Online (Sandbox Code Playgroud)
顾名思义,它是不安全的,通常应避免使用。如果字符串来自不受信任的来源或可以被利用的来源,则可以将恶意代码呈现给客户端。
最好的方法是专门解码实体,例如html-entities:
import { Html5Entities } from 'html-entities';
const htmlEntities = new Html5Entities();
...
{htmlEntities.decode(htmlString)}
Run Code Online (Sandbox Code Playgroud)
如果可能的话,可以通过不首先存储HTML实体来避免该问题。
| 归档时间: |
|
| 查看次数: |
1432 次 |
| 最近记录: |