Hasty Briefsbeta

双语

Element: setHTML() method

7 months ago
  • #javascript
  • #web-development
  • #security
  • `Element`接口的`setHTML()`方法提供了一种XSS安全的方式,可在将HTML字符串插入DOM前将其解析并净化到`DocumentFragment`中。
  • 该方法需要接收一个HTML格式的`input`字符串,以及可选的`options`对象(可指定`Sanitizer`或`SanitizerConfig`来控制允许/移除的元素)。
  • 即使某些元素被净化器配置允许,该方法仍会自动移除XSS不安全的元素和属性。
  • 当需要插入不可信的HTML时,应优先使用`setHTML()`而非`innerHTML`或`setHTMLUnsafe()`来预防XSS攻击。
  • 示例展示了使用默认和自定义净化器的情况,证明无论净化器如何设置,类似`<script>`的不安全元素始终会被移除。
  • 该特性目前处于实验阶段且浏览器支持有限,生产环境使用前需检查兼容性。