arachni能深度解析html、执行js、检测dom xss和开放重定向,但无法扫描纯静态html文件或未加载的js逻辑;zap需通过代理抓包并启用dom xss等规则,对硬编码敏感信息和sandbox配置等仍需人工审查。

直接用 Arachni 或 OWASP ZAP 扫描 HTML 页面最有效,但别指望它们能“自动识别所有前端逻辑漏洞”——HTML 本身不执行代码,真正要测的是它承载的 JS 行为、表单交互、CSP 配置和 DOM 操作逻辑。
Arachni 能扫什么、不能扫什么
Arachni 是少数能深度解析 HTML 结构并触发动态行为的开源扫描器。它会加载页面、执行内联和外部 <script></script>、模拟点击、填充表单、检测 DOM XSS 和开放重定向。
- 能识别
<input type="hidden">值被 JS 动态写入后又反射到 DOM 的链路(典型 DOM XSS 场景) - 对
document.write()、innerHTML = ...、location.href = ...等危险操作有插件级检测 - 不处理纯静态 HTML 文件(如本地
index.html)——必须起一个 HTTP 服务,让 Arachni 通过 URL 访问 - 无法检测未加载的 JS 文件里的逻辑(比如只在特定用户角色下才加载的脚本),除非你手动配置爬虫路径或提供登录 Cookie
OWASP ZAP 怎么配才能抓到 HTML 相关问题
ZAP 本质是代理+爬虫+主动探测三合一,对 HTML 的利用点集中在“如何让它真正跑起来”。关键不是打开 HTML,而是让它被浏览器执行。
生成Claude风格的精美单页HTML汇报文件。当用户需要生成"汇报"、"周报"、"月报"、"项目进度"、"复盘"、"演示"、"slide deck"、"状态报告"、"工作总结"时触发。支持6种模板:周报(weekly)、项目进度(project)、月度总结(monthly)、复盘报告(postmortem)、演示文稿(slid
- 必须用浏览器访问目标页面,并确保代理指向
localhost:8080(ZAP 默认端口) - 如果页面依赖
localStorage或sessionStorage初始化状态,ZAP 不会自动还原——得先人工访问一次,再用 ZAP 的Spider或Active Scan复用会话 - 检查 CSP 报告时,ZAP 不会自动生成
report-uri,但能在响应头里标出缺失或宽松策略(如script-src 'unsafe-inline') - 导出报告前,确认勾选了
DOM XSS、Client Side Include、Unvalidated Redirects这几项扫描规则
别漏掉 HTML 源码层的硬编码风险
很多 HTML 漏洞根本不在运行时暴露,而是写死在源码里:硬编码密钥、调试注释残留、暴露内部路径的 <!-- TODO: remove this -->、甚至 base64 编码的敏感信息。
- 用
grep -r "password\|api_key\|debug" ./src/ --include="*.html"快速筛 - 检查
<meta name="viewport">是否缺失,这虽不直接导致漏洞,但影响移动端 XSS 利用面 -
<iframe sandbox></iframe>属性是否过度宽松(如含allow-scripts allow-same-origin)——ZAP 和 Arachni 都不会报这个,得人工审 - 若项目用构建工具(Webpack/Vite),HTML 模板可能被注入变量,这时要查
html-webpack-plugin或vite-plugin-html的配置,防止templateParameters泄露环境变量
HTML 漏洞往往藏在“JS 怎么用它”和“人怎么写它”之间,工具只能覆盖前半段;后半段得靠 grep、眼力和对业务流程的理解——比如一个隐藏的 <div id="admin-panel" style="display:none">,ZAP 不会点开它,但你看到 <code>admin 就该去翻 JS 里有没有条件解除它的逻辑。










