html源码检查是web安全审计的基础入口,需重点审查meta标签、注释、data-*属性、href/src硬编码url及动态dom插入点,结合js调用链与后端校验验证,覆盖输入-处理-输出全链路。

HTML应用本身不执行逻辑,但它是所有Web安全问题的“呈现层入口”。真正的风险不在标签语法,而在用户输入如何进入、被如何处理、最终怎样输出——评估必须围绕这三点展开,否则只是在检查排版。
查HTML源码里藏了什么敏感信息
很多漏洞线索就明晃晃写在源码里,只是没人翻。打开浏览器开发者工具,按 Ctrl+U 或右键“查看页面源代码”,重点扫以下位置:
-
<meta name="generator">标签:暴露CMS或框架版本,比如name="generator" content="WordPress 5.2.1",立刻查对应版本已知漏洞 -
<!-- 注释 -->:开发人员常把测试账号、临时API密钥、内部路径写在里面,比如<!-- debug: api-key=sk_test_abc123 --> -
data-*属性:前端组件常用它传参,但有时会塞进未脱敏的用户ID、权限标识甚至token片段 -
href和src中的硬编码URL:看有没有指向测试环境、内网地址(如http://192.168.1.100/api)或未授权的CDN
盯紧所有动态插入DOM的位置
DOM型XSS不是服务器返回的,而是前端JS自己搞出来的。搜索页面加载的所有JS文件,重点关注以下函数调用是否接收了用户可控数据:
-
innerHTML、outerHTML:只要右侧值含location.search、location.hash、document.referrer或localStorage读取的内容,基本就是高危点 -
document.write():现代项目已少见,但老系统里仍存在,且几乎无法防御 -
eval()、setTimeout(string, ...)、setInterval(string, ...):如果字符串拼接了URL参数或API响应字段,风险极高 -
<script src="..."></script>动态生成:检查是否用url + '?v=' + Math.random()这类方式拼接,可能被污染成javascript:alert(1)
验证所有表单提交的真实防护能力
前端的 required、pattern、maxlength 全是摆设。真正要验证的是后端是否做了等价校验:
- 用浏览器开发者工具禁用JS,再填一个超长用户名(比如500字符)、SQL注入载荷(
' OR '1'='1)、XSS payload(<img src="x" onerror="alert(1)">),直接提交 - 用Burp Suite拦截请求,修改
Content-Type为text/plain或application/json,看后端是否仍能正确解析并校验 - 检查登录、密码重置等关键表单是否有
input[type="hidden"]存放token或状态,尝试篡改其值,看是否被服务端校验 - 上传文件时绕过前端
accept="image/*",改成.html或.js文件,看后端是否只校验扩展名、是否检测文件头(magic bytes)
检查响应头与CSP策略是否真生效
很多团队配了CSP却没效果,原因往往是策略太宽或没覆盖全部上下文。打开开发者工具的“网络”面板,选任意一个HTML响应,看响应头和 <meta http-equiv="Content-Security-Policy">:
- 是否存在
X-Frame-Options或Content-Security-Policy: frame-ancestors?没有就存在Clickjacking风险 - CSP中
script-src是否包含'unsafe-inline'或'unsafe-eval'?有就等于没开 - 检查
img-src是否限制了data:和javascript:协议,防止通过<img src="data:text/html,...>%20%E7%BB%95%E8%BF%87 - %E7%94%A8%20
curl%20-I%20http://yoursite.com%20%E9%AA%8C%E8%AF%81%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E5%93%8D%E5%BA%94%E5%A4%B4%E6%98%AF%E5%90%A6%E4%B8%8E%E6%9C%AC%E5%9C%B0%E5%BC%80%E5%8F%91%E4%B8%80%E8%87%B4%EF%BC%8CCDN%E6%88%96%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E5%8F%AF%E8%83%BD%E8%A6%86%E7%9B%96%E4%BA%86%E5%90%8E%E7%AB%AF%E8%AE%BE%E7%BD%AE
%E6%9C%80%E5%B8%B8%E8%A2%AB%E5%BF%BD%E7%95%A5%E7%9A%84%E4%B8%80%E7%82%B9%EF%BC%9AHTML%E5%AE%89%E5%85%A8%E4%B8%8D%E6%98%AF%E5%8D%95%E7%82%B9%E4%BB%BB%E5%8A%A1%E3%80%82%E4%B8%80%E4%B8%AA%20innerHTML%20%E6%BC%8F%E6%B4%9E%E5%8F%AF%E8%83%BD%E8%A2%ABCSP%E6%8B%A6%E4%BD%8F%EF%BC%8C%E4%BD%86%E8%8B%A5%E5%90%8C%E6%97%B6%E5%AD%98%E5%9C%A8%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%A8%A1%E6%9D%BF%E6%B3%A8%E5%85%A5%EF%BC%88SSTI%EF%BC%89%E6%88%96JSONP%E6%8E%A5%E5%8F%A3%EF%BC%8C%E6%94%BB%E5%87%BB%E9%93%BE%E5%B0%B1%E8%83%BD%E9%97%AD%E7%8E%AF%E3%80%82%E6%8E%92%E6%9F%A5%E5%BF%85%E9%A1%BB%E6%A8%AA%E5%90%91%E6%8B%89%E9%80%9A%E2%80%94%E2%80%94%E4%BB%8EURL%E5%8F%82%E6%95%B0%E3%80%81AJAX%E5%93%8D%E5%BA%94%E3%80%81%E5%AF%8C%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91%E5%99%A8%E5%86%85%E5%AE%B9%EF%BC%8C%E5%88%B0iframe%E5%B5%8C%E5%85%A5%E5%92%8C%E5%A4%9A%E5%AA%92%E4%BD%93%E6%A0%87%E7%AD%BE%E7%9A%84src%E5%B1%9E%E6%80%A7%EF%BC%8C%E6%AF%8F%E4%B8%AA%E6%95%B0%E6%8D%AE%E5%87%BA%E5%8F%A3%E9%83%BD%E8%A6%81%E9%97%AE%E4%B8%80%E5%8F%A5%EF%BC%9A%E5%AE%83%E6%9C%80%E7%BB%88%E6%80%8E%E4%B9%88%E8%90%BD%E5%88%B0DOM%E9%87%8C%EF%BC%9F%E8%B0%81%E6%8E%A7%E5%88%B6%E4%BA%86%E5%AE%83%E7%9A%84%E6%BA%90%E5%A4%B4%EF%BC%9F
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











