React使用dangerouslySetInnerHTML渲染HTML片段
135 字
1 分钟
React使用dangerouslySetInnerHTML渲染HTML片段
- Vue中可以通过v-html将HTML片段直接渲染在页面上,v-html对字符串进行过滤输入和转义输出可以有效避免xss攻击
- React中同样可以渲染HTML————
dangerousSetInnerHtml,和v-html类似
const main = () => { const html = '<h1>hello world</h1>'; return <div dangerousSetInnerHtml={{ __html: html }}></div>}而dangerousSetInnerHtml渲染的HTML内容是没有经过过滤或转义的,所以很容易遇到XSS攻击
解决方法
可以通过 dompurify.sanitize 进行过滤
const main = () => { const html = '<h1>hello world</h1>'; return <div dangerousSetInnerHtml={{ __html: DOMPurify.sanitize(html) }}></div>} React使用dangerouslySetInnerHTML渲染HTML片段
https://wangxiang.website/posts/前端框架/dompurify/