首页/安全/漏洞与攻击面速查/API 扫描的要点与限制
扫描与验证方法50 条

API 扫描的要点与限制

API 测试依赖接口定义与鉴权矩阵:有 OpenAPI/Swagger 定义时导入生成请求集合;无定义时先人工梳理关键接口,再按角色逐项验证越权与参数处理。

漏洞与攻击面速查安全更新于 2026-10-13

API 扫描是什么

API 扫描的难点在于接口没有页面可爬:参数结构、鉴权方式与调用顺序都来自接口定义或人工梳理。有 OpenAPI、Swagger 或 Postman 集合时可以直接导入生成请求;没有定义时,先从网关访问日志与前端代码里提取真实调用的接口清单,再按角色逐项验证越权与参数处理。相对传统站点扫描,API 扫描更强调按角色与权限矩阵做对照,而不是单纯探测响应特征。

基本信息

输入材料OpenAPI/Swagger 定义、网关日志、前端调用代码
前提明确测试账号与各角色的权限矩阵
常见工具支持 OpenAPI 导入的扫描器,导入后限制速率执行
风险控制写接口需在测试环境执行,生产只做只读核查

典型使用场景

  • 接口定义齐全的项目,导入定义后按上下文执行被动与轻量主动检查
  • 梳理影子 API:把网关清单与实际可达路径做比对,找出未登记接口
  • 按角色矩阵逐项验证:用低权限凭据调用高权限接口,确认返回 403
  • 检查响应字段是否超出业务需要,识别过度返回与未脱敏数据
  • 旧版本接口下线后复查:确认返回 404 或 410,而不是仍可正常调用

核查维度清单

核查维度清单
1. 鉴权:无凭据 / 低权限凭据访问高权限接口
2. 参数:类型边界、数组与对象结构、批量查询上限
3. 速率:大批量请求下的限流与降级行为
4. 数据暴露:响应字段是否超出业务需要(脱敏、字段过滤)
5. 版本与文档:旧版本接口是否仍在线、文档页是否对外可见

角色对照片段

检查项方法预期结果
水平越权用 A 用户凭据读取 B 用户资源 ID返回 403 或 404,不返回他人数据
垂直越权用普通用户凭据调用管理接口返回 403
限量绕过请求超大分页或批量参数被上限截断或直接拒绝
未脱敏字段对比响应与界面展示字段仅返回业务必要字段
API 扫描要带上测试账号的鉴权头并把请求速率压到业务可承受的范围内,不带凭据的扫描只能覆盖匿名可见的接口,结论会明显偏乐观。
写操作接口要格外谨慎:生产环境的批量创建、删除、退款类接口一旦被扫描器自动调用,会产生脏数据甚至真实业务影响。

易错点

  • 用生产账号跑批量写接口测试,产生大量测试订单与脏数据
  • 只扫匿名可见接口就得出『无越权』结论:缺少按角色对照的验证
  • 未配置限速,扫描流量触发限流后误判为接口不可用
  • 接口定义过期仍按旧文档测试,漏掉新上线接口与新增字段

数据来源与参考

  • OWASP API Security Top 10(核查维度)
  • OWASP ZAP 文档(OpenAPI 导入)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌