javascript - 从经过消毒的 html 中设置 innerHtml 仍然很危险吗?
问题描述
在 react 中有一个 innerHtml 的替代品:dangerouslySetInnerHTML。
它的名字让我害怕。
在 React 文档中,我读到:
一般来说,从代码中设置 HTML 是有风险的,因为很容易无意中将您的用户暴露给跨站点脚本 (XSS) 攻击。
但是我用 dompurify 清理了我的 html。这是否完全保护我免受 XSS 攻击?
解决方案
但是我用 dompurify 清理了我的 html。这是否完全保护我免受 XSS 攻击?
可能是的,但不是 100% 保证的。如果 DOMPurify 没有让 XSS 通过的错误,那么设置innerHTML
或dangerouslySetInnerHTML
使用其结果将是安全的。DOMPurify 是开源的并且比较流行,所以如果它确实有这样的漏洞,它们现在可能已经被发现了。
但是,就像人类所做的一切一样,导致漏洞未被发现的错误和巧合仍然是可能的。
推荐阅读
- asp.net - PSEXEC 在远程服务器上启动计算器仅在调试 vb.net 时有效
- bash - 从文件中选择列并保存输出
- stored-procedures - informix 12.10 使用单个文件创建多个存储过程
- sql - SQL 复制/负载管理的最佳实践
- reactjs - 无法在 redux saga 的 yield 调用中使用 fetch
- javascript - 从提供的 JSON 数据中检索特定数据
- gradle - 未找到 Grails CXF 插件
- c# - 在 wpf 项目中单点管理和加载我的自定义字体
- google-bigquery - BigQuery 中 ARRAY_AGG(foo where bar) 的等价物是什么?
- json - swift如何在数组中添加字典键值