Web安全之DOM型XSS攻击原理与防御详解
字数 1115 2025-11-19 22:06:56
Web安全之DOM型XSS攻击原理与防御详解
1. 攻击原理
DOM型XSS(跨站脚本攻击)是一种特殊类型的XSS攻击,其特点是不经过服务器端处理,直接在客户端DOM解析阶段触发。攻击原理可分为三个核心环节:
1.1 攻击入口点
- 攻击者通过URL参数、表单输入、Cookie等客户端可控数据源注入恶意脚本
- 常见入口:
location.hash、document.referrer、window.name、localStorage等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 执行过程
- 浏览器加载页面时解析URL片段(hash)
location.hash返回"#"substr(1)去除#号后直接插入document.write()- 浏览器将