使用 setHTML() 方法消毒HTML

💡 原文中文,约4900字,阅读约需12分钟。
📝

内容提要

setHTML() 方法安全处理和注入 HTML 字符串,有效防止跨站脚本攻击。它解析并清理输入的 HTML,移除不安全的元素和属性,并可通过自定义配置选择允许或移除的元素。相比直接使用 innerHTML,更加安全。

🎯

关键要点

  • setHTML() 方法安全处理和注入 HTML 字符串,有效防止跨站脚本攻击。
  • 该方法解析并清理输入的 HTML,移除不安全的元素和属性。
  • 可以通过自定义配置选择允许或移除的元素。
  • setHTML() 方法比直接使用 innerHTML 更加安全。
  • setHTML() 方法返回值为 None (undefined)。
  • 当 options.sanitizer 接收非规范化的 SanitizerConfig 时,会抛出 TypeError 异常。
  • setHTML() 会移除无效的元素和不符合清理程序配置的 HTML 实体。
  • 使用 setHTML() 替代 Element.innerHTML 来插入不可信的 HTML 字符串。
  • 即使净化器配置允许不安全选项,setHTML() 仍会移除这些元素。
  • 示例展示了使用 setHTML() 对 HTML 字符串进行安全处理和注入的几种方式。
➡️

继续阅读