安全漏洞主要藏在javascript执行逻辑、服务端响应和dom操作中,需重点检查url参数篡改、innerhtml等危险api、iframe嵌入风险及前端暴露的业务逻辑线索。

别指望靠“看一眼HTML源码”就发现安全漏洞——绝大多数问题藏在JavaScript执行逻辑、服务端响应行为和DOM动态操作里。直接上手查,得盯住几个关键位置。
用开发者工具抓URL参数和隐藏字段篡改痕迹
很多攻击入口就暴露在明面上:比如?redirect_url=https://evil.com、<input type="hidden" name="price" value="999">。这些不是摆设,是攻击者第一眼就会盯上的目标。
- 打开浏览器开发者工具(F12),切到 Elements 面板,手动修改
value或 URL 参数,然后提交表单,观察后端是否照单全收 - 特别注意
location.search和location.hash被 JS 读取后赋值给innerHTML、window.location.href或fetch()请求的地方 - 如果页面用了 Vue/React,还要检查
v-bind:href或{url}这类插值是否直接拼接了用户输入
查 DOM 型 XSS:重点搜 innerHTML、document.write 和 eval
这类漏洞不发请求、不碰服务器,纯前端执行,自动化扫描器经常漏掉。你得像读小说一样翻 JS 文件,找数据从哪来、到哪去。
- 全局搜索关键词:
innerHTML、outerHTML、document.write、eval(、setTimeout(、setInterval(、.src=(尤其后面接location相关变量) - 找到后,逆向追踪它的值来源:是不是来自
location.search、localStorage、document.referrer或postMessage?如果是,基本就是高危点 - 用 Console 手动测试:
document.getElementById('x').innerHTML = '<img src="https://img.php.cn/?x-oss-process=image/resize,p_40" alt="新手如何查找HTML页面中的安全漏洞">',看是否弹窗
扫 iframe 和跳转风险:看响应头 + 动态 src
Clickjacking 和开放重定向不是靠 HTML 标签数量判断的,而是看有没有放行外部嵌入或跳转控制权。
- 在 Network 面板里选任意一个 HTML 页面响应,看 Response Headers 里有没有
X-Frame-Options或Content-Security-Policy: frame-ancestors;没有就是默认可被嵌入 - 搜索所有
<iframe src="</code">,尤其是 src 值由 JS 拼接而成的,比如 <code>iframe.src = 'https://user-provided-domain.com/widget' - 检查所有
window.location.href = xxx、window.open(xxx)、<a href="" target="_blank"></a>,确认是否加了rel="noopener noreferrer"
别信前端验证,但要盯紧它暴露的逻辑线索
前端校验本身不是漏洞,但它会把业务规则、权限边界、价格计算方式等敏感信息白送给攻击者。你查漏洞,其实是在读它的“说明书”。
- JS 里写死的
if (role === 'admin')、const discountRate = 0.8、apiUrl = '/api/v1/orders/' + userId—— 这些全是越权、IDOR、价格欺诈的线索 - 表单提交前的 JS 校验正则,比如
/^[a-zA-Z0-9_]+$/,往往暗示后端也只做了同样弱的过滤,可以尝试绕过 - 看到
fetch('/api/checkout', { body: JSON.stringify(data) }),立刻去 Network 面板抓这个请求,手动改data.amount或data.productId,看后端是否拒绝
真正卡住新手的,从来不是找不到 script 标签,而是没意识到 location.search 是个输入口、innerHTML 是个输出口、fetch() 是个信任出口——把数据流当管道来看,漏洞才真正“可见”。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











