防xss核心是检查用户输入是否被安全输出:用f12 elements搜索、onerror=等关键词,重点审查innerhtml、document.write等危险操作;防clickjacking需查响应头是否有x-frame-options或frame-ancestors;敏感信息常藏于html注释、隐藏元素及script硬编码中。

HTML代码本身不执行逻辑,但它是XSS、Clickjacking、信息泄露等漏洞的直接载体——检测关键不在“语法对不对”,而在“用户输入怎么出来”“响应头有没有设”“隐藏内容藏了什么”。
怎么看用户输入是否被安全输出(防XSS核心)
所有动态插入HTML的内容,只要来源是用户可控的(GET参数、表单提交、API返回值),就必须检查它最终如何落到页面上。
- 用浏览器开发者工具(F12)→ Elements 面板,搜索
<script></script>、onerror=、javascript:等关键词,看是否原样出现在DOM里 - 重点检查这些位置:
innerHTML = user_input、document.write(user_input)、eval()、setTimeout(user_input) - 如果用了
textContent或框架如 React 的{userInput}(非 dangerouslySetInnerHTML),通常已做转义,风险低 - 测试时别只输
<script>alert(1)</script>,试试<img src="x" onerror="alert(1)">或大小写混写<script></script>,绕过弱过滤
怎么查响应头是否缺失防框架策略(防Clickjacking)
服务器没配 X-Frame-Options 或 Content-Security-Policy 的 frame-ancestors,页面就可能被恶意网站用 <iframe></iframe> 嵌套,诱导用户点击看不见的按钮。
- 在开发者工具 → Network → 选任意HTML请求 → Headers → Response Headers,查找是否有
X-Frame-Options: DENY或Content-Security-Policy: frame-ancestors 'none' - 没有?立刻本地建个测试页:
<iframe src="%E7%9B%AE%E6%A0%87%E7%BD%91%E5%9D%80" width="100%" height="500"></iframe>,打开看是否能加载成功 -
X-Frame-Options已被部分新浏览器弃用,优先用frame-ancestors;若需兼容旧环境,两者可共存
怎么挖HTML里藏着的敏感信息(常被忽略)
开发人员常把调试信息、临时注释、隐藏元素当成“用户看不到”,但源码一查全暴露。
- 右键 → “查看网页源代码”(不是Elements面板),全局搜索:
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











