<p>HTML注释(<!-- -->)会原样暴露在前端源码中,导致测试账号、内网路径、后台地址等敏感信息泄露;JSP中误用HTML注释而非<%-- --%>更放大风险,且静态生成、动态JS插入、CMS直出等场景均可能绕过构建工具自动清理。</p>

HTML注释里藏了测试账号、内网路径、后台地址?直接看源码就能拿到——这不是假设,是线上真实发生过的泄漏事件。
右键“查看网页源代码”是最有效的起点
所有 HTML 注释(<!-- ... -->)都会原样发送到浏览器,服务器不会过滤,前端也不会执行,但人眼能读。攻击者第一件事就是打开源码搜索关键词。
- 在 Chrome/Firefox 中按
Ctrl+U(Windows)或Cmd+Option+U(Mac),不是开发者工具里的 Elements 面板——那是渲染后 DOM,注释可能已被 JS 删除 - 用
Ctrl+F搜索常见敏感词:test、admin、password、127.0.0.1、/api/、TODO、FIXME、debug - 特别注意注释块结尾是否异常,比如
<!-- API endpoint: /v2/internal/user?token=xxx -->这类带参数的 URL,token 很可能已失效,但路径和结构暴露了后端设计
别只盯 <!--,JSP 和模板里混用注释更危险
JSP 页面支持两种注释:<%-- ... --%>(服务端不输出)和 <!-- ... -->(前端可见)。开发习惯常误用后者,尤其在调试时随手写进 HTML 层。
- 检查 JSP 文件中是否出现
<!--包裹了class="debug"、data-dev-url或内联 JS 变量赋值,例如:<!-- var API_BASE = "http://10.1.1.5:8080"; --> - Vue/React 等框架组件里,
<!--仍会被保留;而{/* */}是 JS 注释,不会出现在 HTML 源码中——但有人会把{/* */}写错成<!-- */},导致半截注释泄露 - 静态生成站点(如 Next.js、Nuxt)若在
getStaticProps或模板字符串里拼接了注释,且用了<!--而非服务端逻辑注释,也会外泄
自动化扫描要绕过 JS 渲染干扰
有些注释是 JS 动态插入的(比如用 document.write('<!-- ... -->')),普通爬虫抓不到;也有页面用 JS 删除了注释,但源码里还留着——所以必须分两层扫。
立即学习“前端免费学习笔记(深入)”;
- 用
curl -s https://example.com/ | grep '<!--'快速确认原始响应是否含注释,这是最干净的 baseline - 工具如
YuanZhao的deep模式会启动无头浏览器执行 JS,再提取最终 DOM 中的注释,适合查动态注入场景 - 避免依赖仅分析 HTML 字符串的工具(如简单正则扫描器),它们会漏掉



















