前端html漏洞排查需紧盯用户输入、数据渲染和页面嵌入/跳转三环节;重点审查innerhtml等动态插入api、url参数反射、srcdoc、on事件属性、伪协议及富文本输出,确认是否经白名单过滤或上下文编码。

前端HTML漏洞排查不是“扫一遍代码就完事”,而是要盯住三个关键动作:用户输入怎么进、数据怎么被渲染、页面怎么被嵌入或跳转。不从这三点切入,容易漏掉真正高危的XSS、Clickjacking和开放重定向问题。
检查所有动态插入HTML的位置
只要看到 innerHTML、outerHTML、document.write()、insertAdjacentHTML(),或者框架里用了 v-html(Vue)或 dangerouslySetInnerHTML(React),就必须人工确认输入是否经过服务端净化或前端转义。这些 API 本身不危险,但一旦传入未过滤的用户数据,就等于直接执行攻击者代码。
- 特别注意 URL 参数反射场景:比如
location.search提取q=xxx后填入<div>xxx</div>或<input value="xxx">—— 攻击者可用" onfocus="alert(1)闭合引号并注入事件 -
srcdoc属性常被忽略,它等价于内联 iframe 页面,<iframe srcdoc="<script>alert(1)</script>"></iframe>可直接触发 XSS - 富文本编辑器输出内容必须走白名单过滤(如 DOMPurify),不能只靠“去掉 script 标签”这种简单正则
重点审查可执行脚本的HTML属性
浏览器会主动解析并执行某些属性值里的 JS,这类属性是 XSS 最高频入口,比 <script></script> 标签更隐蔽、更难被扫描工具覆盖。
- 所有以
on开头的事件处理器:onerror、onclick、onload、oncut、oncontextmenu—— 审查时别只盯着常见几个,低频事件一样能触发 -
href和src中的伪协议:javascript:alert(1)、vbscript:、data:text/html;base64,... -
style属性中的表达式:expression(...)(IE)、url(javascript:...)(部分旧 CSS 解析器) - 测试绕过技巧:用
"替代英文双引号、大小写混淆(OnErRoR)、HTML 注释分割(<img src="x" on>error=alert(1)>)
验证页面是否可被恶意嵌入或跳转
框架嵌入(Clickjacking)和前端跳转漏洞往往不报错、不弹窗,但能被用于钓鱼或 UI 重绘攻击,必须手动验证响应头与行为逻辑。
- 检查响应头是否有
X-Frame-Options: DENY或Content-Security-Policy: frame-ancestors 'none';缺失即存在风险 - 本地建一个测试页:
<iframe src="https://yoursite.com"></iframe>,加载后看是否被拒绝或空白 - 搜索所有调用
window.location.href、location.assign()、location.replace()的地方,确认参数是否经过白名单校验(如只允许/、./、../开头,或匹配预设域名) - 警惕
location.hash或document.referrer直接拼进跳转链接的写法,这类 DOM 型漏洞不会出现在服务器日志里
真正难发现的不是 <script></script> 标签,而是那些看起来“只是展示”的属性值、看似安全的跳转逻辑、以及富文本输出时漏掉的 SVG 或注释绕过。每次审查,都要问一句:这个值最终会由浏览器怎么解析?它有没有可能变成 JS 执行上下文?
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











