常见漏洞验证121 条

旧版本 API 暴露检查

历史版本接口常缺少新加的鉴权与校验:核查 v1/v2 并存、灰度残留与内部测试版本的暴露情况。

旧版本接口为什么危险

接口经过多轮迭代后往往同时存在 v1、v2 与内部版本:新版本加了鉴权、加了限流、修了越权,旧版本因为兼容客户端而继续在线,却没同步这些控制。检查方法是对旧版本端点重放新版本已经修复的验证项,逐项记录差异,最后给出“补齐同等防护”或“按下线计划处理”两类建议。

基本信息

版本形态路径版本(/v1/)、请求头协商、查询参数、子域名
检查方法对旧版本重放新版本已验证的鉴权与限流检查项
处置路径下线,或在旧版本补齐同等防护
下线前提评估客户端存量占比与升级强制能力

典型使用场景

  • 接口版本迭代后的历史版本暴露面核查
  • 排查“新版本已修复、旧版本仍可绕过”的问题
  • 移动端接口下线前的客户端兼容性评估
  • 核查灰度期间并行运行的接口是否留下未管控入口
  • 为网关层统一鉴权方案提供差异清单

核对步骤

核对步骤
1. 枚举版本形态:路径前缀、查询参数、请求头,以及子域名形式的版本区分
2. 对旧版本抽查认证、鉴权、限流三类控制(用测试账号)
3. 与新版本行为对照,记录差异项:新版本拒绝而旧版本放行即为问题
4. 检查测试环境域名是否对外可达,这类入口通常缺少鉴权
5. 输出:旧版本清单 + 差异项 + 下线或补齐防护的建议与影响说明

差异项与判据

控制项新版本表现旧版本风险表现
认证要求有效凭证匿名可调用或使用固定密钥
鉴权按对象归属校验只按 ID 返回数据
限流有频次与并发限制无限制可批量拉取
字段脱敏敏感字段已脱敏返回明文敏感字段
错误处理统一错误结构回显堆栈与内部信息
移动端强制更新周期长:下线旧版本接口前要评估存量客户端占比,必要时先在网关层对旧版本补齐鉴权与限流,再按版本比例逐步下线。
测试环境域名对外可达是常见问题:这类入口通常没有网关管控,鉴权与限流都缺失,应在资产梳理中单列。

易错点

  • 只测路径风格的版本,漏掉请求头协商与子域名形式的版本区分
  • 忽略测试环境域名对外可达,错过一批缺少网关管控的接口
  • 把旧版本接口当成“已经废弃”,实际仍在被大量客户端调用
  • 修复只在新版本做,旧版本继续放行,问题在评估报告复测时再次出现
  • 下线前未评估客户端存量,造成用户端功能不可用

数据来源与参考

  • OWASP API Security Top 10(API9)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌