如何解决消毒剂VS危险地设置内部HTML
根据某些React documentation:
innerHTML
的不当使用可能会使您跨站点访问 脚本(XSS)攻击。清除显示的用户输入是 臭名昭著的容易出错,并且无法正确消毒是其中之一 互联网上网络漏洞的主要原因。
似乎不正确使用消毒剂和innerHTML
可能会暴露站点XSS(跨站点脚本)攻击。
另一方面,根据其他文档(例如Gatsby或sanitizers本身),建议使用它们:
防止XSS攻击的最直接方法是清理 危险地设置它之前的innerHTML字符串。幸运的是 是可以完成此任务的npm软件包; sanitize-html之类的软件包 和DOMPurify。
最好的和最安全的方法是避免在React中使应用程序遭受XSS攻击,同时又避免不正确使用消毒剂?
解决方法
这两个选项互不相同:
innerHTML的不当使用可能使您容易受到跨站点脚本(XSS)攻击
强调“不当”。
清除内部HTML字符串,然后再进行危险设置
在设置输入之前,请使用已建立的知名库对输入进行清理,因为这不是对innerHTML的不当使用。
,我认为,通过评论(尤其是Corey Ward表示)的最好,最安全和最佳的方法是尽可能避免使用dangerouslySetInnerHtml
(因此消毒剂)。有一些令人惊叹的库,例如markdown-to-jsx,它扩展了dangerouslySetInnerHtml
(呈现HTML)的优势,而不会使Web遭受XSS攻击。
如果用例的唯一解决方案是使用dangerouslySetInnerHtml
,那么该解决方案必须使用消毒剂,请记住,应将其配置为保留样式,类,和其他期望的行为以避免丢失更改。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。