dom型xss漏洞源于前端脚本将用户可控数据未经安全处理直接写入innerhtml、eval等敏感dom位置,完全在浏览器端执行,需通过开发者工具追踪location.hash等数据源及sink函数定位风险点。

不用装工具、不写代码,打开浏览器开发者工具就能发现大部分真实存在的 HTML 安全问题。关键不是“有没有漏洞”,而是“哪些地方正在把用户输入直接塞进页面或跳转逻辑里”。
怎么看 URL 参数有没有被乱用
很多 XSS 和跳转漏洞就藏在地址栏里。打开网页后,先手动改一改 URL 中的参数,比如把 ?id=123 改成 ?id=%3Cscript%3Ealert(1)%3C/script%3E(即 <script>alert(1)</script> 的 URL 编码),然后回车。
- 页面弹窗了?说明输出没转义,存在反射型或 DOM 型 XSS
- 页面跳转到了奇怪的域名?检查是否用了
window.location.href = urlParam且没做白名单校验 - URL 里出现
redirect=、url=、next=、return_to=这类参数,基本都要重点盯——它们常是钓鱼跳转入口 - 注意:有些参数只影响前端 JS 行为(如
location.hash),不会发请求,但依然可能触发innerHTML或eval()
怎么揪出隐藏的 DOM 型 XSS
这类漏洞不经过服务器,纯靠前端 JS 把用户输入写进 DOM。打开开发者工具 → Sources 面板,全局搜索这几个关键词:
-
location.hash、location.search、document.referrer—— 常见数据源 -
innerHTML、outerHTML、document.write、eval(、setTimeout(、setInterval(—— 危险 sink 函数 - 如果搜到类似
el.innerHTML = location.hash.slice(1)这种写法,基本就是高危点 - 再切到 Elements 面板,手动在控制台输
location.hash = "#<img src="https://img.php.cn/?x-oss-process=image/resize,p_40" alt="新手如何自查HTML网页中的安全漏洞">",看会不会触发
怎么快速扫一遍页面有没有基础防护缺失
不用读完整个 HTML,重点看三处:
-
响应头:在 Network 面板点任意一个 HTML 请求 → Headers → Response Headers,确认有没有
X-Frame-Options: DENY或Content-Security-Policy: frame-ancestors 'none'。没有的话,页面可能被嵌入钓鱼页 -
meta 标签:在 Elements 面板搜索
<meta name="generator"> 或 <code>
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











