Web安全之DOM型XSS攻击原理与防御详解
字数 1115 2025-11-19 22:06:56

Web安全之DOM型XSS攻击原理与防御详解

1. 攻击原理
DOM型XSS(跨站脚本攻击)是一种特殊类型的XSS攻击,其特点是不经过服务器端处理,直接在客户端DOM解析阶段触发。攻击原理可分为三个核心环节:

1.1 攻击入口点

  • 攻击者通过URL参数、表单输入、Cookie等客户端可控数据源注入恶意脚本
  • 常见入口:location.hashdocument.referrerwindow.namelocalStorage等Web API

1.2 传播路径
恶意数据在客户端被以下不安全方式处理:

// 危险示例
document.getElementById("output").innerHTML = location.hash.substring(1);
eval(window.name);
document.write(untrustedData);

1.3 触发条件
当恶意脚本被插入DOM后,浏览器会正常解析执行,导致:

  • Cookie被盗取(通过document.cookie)
  • 页面内容被篡改
  • 重定向到钓鱼网站

2. 攻击示例分析
以实际案例展示完整攻击链:

2.1 漏洞代码

<script>
// 从URL片段获取数据并直接插入DOM
var data = decodeURIComponent(window.location.hash.substr(1));
document.write("<div>" + data + "</div>");
</script>

2.2 攻击构造
恶意URL:http://example.com/page#<script>alert(document.cookie)</script>

2.3 执行过程

  1. 浏览器加载页面时解析URL片段(hash)
  2. location.hash返回"#"
  3. substr(1)去除#号后直接插入document.write()
  4. 浏览器将