OWASP ZAP 使用要点
OWASP ZAP 是开源 Web 代理与扫描器,具备三种使用形态:桌面版适合手工测试与主动扫描组合;命令行脚本以基线检查为代表,侧重被动发现,配合爬取出结果;接口形态便于集成到流水线做例行检查。范围控制靠 Context:先限定域名与登录态,再执行扫描,否则很容易扫到授权外的资产。认证扫描需要准备专用测试账号,自动化脚本未配置认证时会漏掉登录后的业务面。
基本信息
| 使用形态 | 桌面版、命令行脚本、接口调用 |
|---|---|
| 基线模式 | 以被动检查为主,配合爬取发现问题 |
| 范围控制 | 用 Context 限定域名、路径与登录态 |
| 报告产出 | 支持输出结构化与可视化报告 |
典型使用场景
- 例行基线检查:流水线中对测试环境做被动检查
- 手工测试:用代理模式边浏览边记录请求
- 认证业务面:配置测试账号后覆盖登录后功能
- 整改复核:改动后重跑同一规则集确认结果变化
- 回归对比:保存历史报告,观察问题数量与类型变化
- 多环境对照:同一规则集分别对测试与生产环境执行,差异项往往说明配置不一致
基线扫描示例
基线扫描示例
docker run --rm zaproxy/zap-stable zap-baseline.py -t https://example.com
# 基线模式以被动检查为主,适合对生产站点做低影响例行检查
# 桌面版流程:Context 定义范围 -> 配置认证 -> 被动扫描 -> 按需主动扫描
# 自动化集成:注意脚本默认会爬取,需确认范围与并发设置三种形态对比
| 形态 | 特点 | 适用场景 |
|---|---|---|
| 桌面版 | 交互式代理,可手工与自动结合 | 评估期间的深度测试 |
| 命令行脚本 | 配置固定、易重复执行 | 例行基线与流水线集成 |
| 接口调用 | 可编程控制上下文与规则 | 规模化与定制化流程 |
认证扫描需准备专用测试账号并限制权限,避免扫描动作影响真实用户数据或触发业务风控。
规则集要与风险评估口径对齐:默认规则覆盖有限,需按业务特点补充规则,并明确哪些命中属于本次评估范围。