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/
作者
翔子
发布于
2022-08-02
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
翔子
前端开发工程师
公告
博客已从 VitePress 迁移到 Astro + Firefly 主题,223 篇文章全部保留。
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
221
分类
9
标签
28
总字数
411,914
运行时长
0
最后活动
0 天前

文章目录