OWASP ZAP API 扫描
将以下提示词粘贴到你的 AI 对话框中:
请根据官方安装指南 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/owasp-zap-api-security-scanner。
技能介绍
要解决的问题
接口文档和线上暴露面经常不一致:研发改了路由没同步文档,安全评审就只能对着一份过期的 openapi.json 猜。把 ZAP 挂进流水线做全站爬取,成本高、噪声大,手工配置扫描目标又容易漏掉刚上线的路径。这个技能解决的是具体一环:让 REST API 安全扫描从人肉配置变成规格驱动——以 OpenAPI/Swagger 文档为唯一输入,对文档中声明的接口做定向扫描,而不是漫无目的地爬站。
技能如何工作
核心链路分三步:
- 导入规格:读取项目里的 OpenAPI/Swagger 规范,解析出路径、参数与鉴权依赖,作为扫描目标清单。
- 驱动扫描:通过 ZAP 官方的 Python API 客户端(
zaproxy)以编程方式发起扫描,全程不需要打开 ZAP 桌面界面点按钮。 - 产出报告:结果输出为 SARIF 格式,可直接对接 GitHub Security 面板,在仓库里就能看到问题条目。
适用边界与注意点
- 它是 ZAP 的胶水层,不是新的扫描引擎:检测能力来自 OWASP ZAP 本身,环境中需要有可用的 ZAP 实例。
- 定向扫描的覆盖范围等于文档声明的内容,未写入文档的废弃或私有接口不会出现在目标清单里,文档质量直接决定扫描面。
- SARIF 能否在 GitHub 上展示,取决于仓库启用了 GitHub Advanced Security;否则报告更适合在 CI 里当质量门禁。
- 上游标注的安装要求与注意事项以 ZAP 官方 README 为准,接入前建议先通读。
使用场景
- REST API 上线前,需要按 OpenAPI 文档对全部声明路径做一轮定向扫描,而不是全站爬取
- CI 流水线需要生成 SARIF 报告,把 ZAP 扫描结果同步到 GitHub Security 标签页
- 已有 OpenAPI 或 Swagger 规格文件,想用 ZAP Python API 客户端自动化扫描并输出结构化结果
- 安全回归阶段需要按接口文档重新执行扫描,确认历史漏洞已修复且无新增风险
适合人员
- 负责 API 上线前安全评审的后端工程师,需要按 OpenAPI 文档自动化扫描并修复漏洞
- 搭建 CI/CD 流水线的 DevOps 工程师,希望 ZAP 结果以 SARIF 形式接入 GitHub Security
- 维护 API 文档和接口规范的开发者,想让安全扫描直接读取已有的 OpenAPI 或 Swagger 文件
- 做漏洞复测的安全测试人员,需要按接口清单批量执行 ZAP 扫描并对比历史结果