旧版本接口为什么危险
接口经过多轮迭代后往往同时存在 v1、v2 与内部版本:新版本加了鉴权、加了限流、修了越权,旧版本因为兼容客户端而继续在线,却没同步这些控制。检查方法是对旧版本端点重放新版本已经修复的验证项,逐项记录差异,最后给出“补齐同等防护”或“按下线计划处理”两类建议。
基本信息
| 版本形态 | 路径版本(/v1/)、请求头协商、查询参数、子域名 |
|---|---|
| 检查方法 | 对旧版本重放新版本已验证的鉴权与限流检查项 |
| 处置路径 | 下线,或在旧版本补齐同等防护 |
| 下线前提 | 评估客户端存量占比与升级强制能力 |
典型使用场景
- 接口版本迭代后的历史版本暴露面核查
- 排查“新版本已修复、旧版本仍可绕过”的问题
- 移动端接口下线前的客户端兼容性评估
- 核查灰度期间并行运行的接口是否留下未管控入口
- 为网关层统一鉴权方案提供差异清单
核对步骤
核对步骤
1. 枚举版本形态:路径前缀、查询参数、请求头,以及子域名形式的版本区分
2. 对旧版本抽查认证、鉴权、限流三类控制(用测试账号)
3. 与新版本行为对照,记录差异项:新版本拒绝而旧版本放行即为问题
4. 检查测试环境域名是否对外可达,这类入口通常缺少鉴权
5. 输出:旧版本清单 + 差异项 + 下线或补齐防护的建议与影响说明差异项与判据
| 控制项 | 新版本表现 | 旧版本风险表现 |
|---|---|---|
| 认证 | 要求有效凭证 | 匿名可调用或使用固定密钥 |
| 鉴权 | 按对象归属校验 | 只按 ID 返回数据 |
| 限流 | 有频次与并发限制 | 无限制可批量拉取 |
| 字段脱敏 | 敏感字段已脱敏 | 返回明文敏感字段 |
| 错误处理 | 统一错误结构 | 回显堆栈与内部信息 |
移动端强制更新周期长:下线旧版本接口前要评估存量客户端占比,必要时先在网关层对旧版本补齐鉴权与限流,再按版本比例逐步下线。
测试环境域名对外可达是常见问题:这类入口通常没有网关管控,鉴权与限流都缺失,应在资产梳理中单列。