通过document.lastModified判断:多次刷新页面,若时间戳不变则为纯静态HTML,不变则说明无后端交互;若时间变化则为伪静态,背后由服务端动态生成。

怎么判断一个HTML页面是纯静态还是伪静态
直接看 document.lastModified 最快。打开浏览器开发者工具(F12),在 Console 里输 document.lastModified 回车。如果多次刷新后时间戳不变,基本就是纯静态 HTML——没后端、不连数据库、没法注入,别在这浪费时间了。如果时间一直在变,说明页面由服务端动态生成(哪怕 URL 是 /news/123.html),属于伪静态,可以继续往下测。
注意:不能只看文件后缀。很多 CMS 或 Nginx 重写规则会把 index.php?id=5 显示成 index/5.html,但背后仍是 PHP + MySQL。
表单提交漏洞最该盯住的三个地方
HTML 表单本身不危险,危险的是后端是否信任它传来的数据。重点检查:
-
<input type="hidden">的 value 值:比如<input type="hidden" name="role" value="user">,改掉试试能不能提权成admin -
<form>的action和method:抓包看实际发到哪;GET 提交的参数全在 URL 里,容易被篡改和日志泄露;POST 更隐蔽但一样可重放 - 所有
name属性字段:SQL 注入常从username、id、category这类参数入手,不是只盯password
绕过前端 JS 校验毫无难度——禁用 JS、用 curl、用 Burp Repeater 直接发包就行。真正有效的校验必须在服务端做。
立即学习“前端免费学习笔记(深入)”;
怎么快速发现 XSS 和 HTML 注入点
XSS 和 HTML 注入本质都是“用户输入没转义就原样塞进响应体”。测试时优先找所有回显用户输入的地方:
- 搜索框结果页:
?q=test→ 页面里出现 “您搜索了:test”,就把q=<script>alert(1)</script>试一遍 - URL 参数渲染到 HTML:
/profile?name=alice→ 看源码里是不是直接写了<h2>alice</h2> - Referer、User-Agent、Cookie 值被打印在后台日志页或调试页(常见于开发环境未关闭的 /debug、/status 接口)
别只试 <script>:XSS 可用 <img src=x onerror=alert(1)> 绕过简单过滤;HTML 注入更侧重结构破坏,比如闭合标签后插 <iframe src="evil.com">。
框架嵌入(Clickjacking)漏洞怎么验证
核心就一条:看响应头有没有防嵌套策略。用 curl 或浏览器 Network 面板查响应头:
- 缺失
X-Frame-Options(值为DENY或SAMEORIGIN) - 缺失
Content-Security-Policy中的frame-ancestors指令(如frame-ancestors 'none')
确认缺失后,本地建个 HTML 文件,用 <iframe src="目标网址"></iframe> 加载试试。能正常显示且没报错,就存在 Clickjacking 风险。注意:有些站点用 JS 脚本防嵌套(比如 if (top !== self) top.location = self.location;),这种容易被绕过,不能替代服务端 Header。
真实场景里,多数 HTML 页面漏洞不在 HTML 本身,而在它背后那个没做好输入校验、权限控制或安全头配置的服务端。盯着源码看 <form> 和 <input> 是起点,但真正要动手,得切到抓包、改参、重放、观察响应——HTML 只是入口,不是战场边界。



















