使用dangerouslySetInnerHtml有什么风险,是什么阻止某人通过浏览器删除santization?

问题描述 投票:1回答:1

我正在使用dangerouslySetInnerHtml将html从胡子模板渲染到React中。我正在阅读有关the security concerns的内容,这对我来说是新的。

我的用例是我有一些包含svg的html。这是静态的,不会从任何数据库中提取。我想渲染一下。

我读到你应该'清理'HTML。给出的示例提供了人们在清理html时使用的库,然后在dangerouslySetInnerHtml属性中使用这个已清理的变体。

然而,什么阻止某人简单地进入JS并通过devtools或某些东西编辑html以便不进行清理。

我没有很多关于这方面的背景,很抱歉,我不能更具体地说明一个例子。

我已经为html尝试了许多解析器来实现React。得出的结论是我需要使用dangerouslySetInnerHtml

javascript html reactjs frontend browser-security
1个回答
1
投票

当此HTML代码来自用户时,您应该“清理”HTML,就像您输入的用户可以将HTML代码提交到您的服务器,然后在其他用户的浏览器上显示它。

“然而,什么阻止某人只是进入JS并通过devtools或其他东西编辑html以便不进行消毒。”这似乎不正确,抱歉。原因是危险的HTML代码只能影响查看它的用户。如果他们在浏览器中编辑JS文件,那就没有意义,因为他们是自己的受害者。

阅读更多关于https://en.wikipedia.org/wiki/Cross-site_scripting(使用的HTML清理)

© www.soinside.com 2019 - 2024. All rights reserved.