首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >反应: dangerouslySetInnerHTML

反应: dangerouslySetInnerHTML
EN

Stack Overflow用户
提问于 2022-09-02 15:32:29
回答 2查看 176关注 0票数 -1

我问过关于dangerouslySetInnerHTML的问题,当html来自我的api或者没有区别的时候使用它是危险的吗?谢谢

EN

回答 2

Stack Overflow用户

发布于 2022-09-02 15:40:47

当HTML来自任何API时,使用dangerouslySetInnerHTML是最危险的。

这在医生们中有介绍。

通常,从代码中设置HTML是有风险的,因为很容易无意中将用户暴露在跨站点脚本(XSS)攻击之下。

本质上,问题是,如果您的服务器没有正确地清理用户输入,您打开您的网站,直到攻击反应,以保护您免受默认。例如,假设您允许用户在您的网站上编写评论,而您的API以HTML的形式发回这些评论。如果一个用户写了一个注释,比如。

代码语言:javascript
复制
my comment <img src="./404" onerror="alert('test')" />

然后,当其他人查看该注释时,可能会执行JavaScript代码,除非您在处理注释时记住要防止这种情况发生。

我建议以不同的格式(例如,JSON)从API中返回数据,然后将其处理为前端的React元素。

票数 2
EN

Stack Overflow用户

发布于 2022-09-02 16:03:54

DangerouslySetInnerHTML

是的,这有潜在的问题。尽管如此,您将获得一些额外的性能,因为react没有将dangerouslySetInnerHTML字段与Virtual进行比较。

它有多危险?

如果用户将一些恶意代码添加到注释/其他输入中,并且通过API在dangerouslySetInnerHTML字段上呈现此数据,则应用程序将处理XSS攻击(https://owasp.org/www-community/attacks/xss/).。

如何防止潜在的XSS?

根据最佳实践,最好使用一些外部模块(如: dangerouslySetInnerHTML ( DOMPurify,https://github.com/cure53/DOMPurify))对DOMPurify元素进行净化。它将从HTML中删除/过滤潜在的恶意代码,并防止XSS。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73584940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档