🛡️ API 安全怎么做——六类风险与分层防护方案
业务从页面转向接口后,传统 WAF 的防护盲区越来越明显。本文梳理 API 最常见的六类风险、接口资产梳理的三种可行方法、开发侧网关侧监测侧三层防护怎么建,以及产品选型要看的关键能力和三个月落地节奏。
📅 更新日期:2026年11月 · 数据来源:国家标准文本及各云厂商公开资料
业务从页面转向接口后,传统 WAF 的防护盲区越来越明显。本文梳理 API 最常见的六类风险、接口资产梳理的三种可行方法、开发侧网关侧监测侧三层防护怎么建,以及产品选型要看的关键能力和三个月落地节奏。
📅 更新日期:2026年11月 · 数据来源:国家标准文本及各云厂商公开资料
过去十年,企业把防护重心放在 Web 页面和网络边界上,WAF、防火墙、IPS 层层堆叠。但业务架构变了:前端页面调后端接口,App 调 API,合作伙伴调开放接口,内部系统之间也走 API。数据真正的出入口,从页面转移到了接口。
这带来一个尴尬局面:传统 WAF 看的是 HTTP 请求里的攻击特征,对 API 的业务逻辑滥用几乎无感。攻击者不需要注入恶意代码,只要按正常格式反复调用接口,就能把数据一点点搬走。这类攻击在日志里看起来全是合法请求。
API 安全的难点在于它不只是技术问题。一个企业往往有几百上千个接口,很多是历史遗留、文档缺失、没人维护的。不知道有哪些接口,就谈不上保护。所以 API 安全的第一步永远是资产梳理,而不是买设备。
💡 一个判断标准:如果您的系统有对外提供的接口、有 App 或小程序、有和第三方对接,就需要把 API 安全单独拎出来考虑,不能只靠 WAF。
OWASP API Security Top 10 给出了权威分类,落到国内企业的实际情况,最容易出问题的集中在下面几类。
| 风险 | 典型表现 | 危害 |
|---|---|---|
| 越权访问 | 改一下 URL 里的用户 ID 就能看别人的订单 | 批量数据泄露,最常见也最致命 |
| 认证缺失 | 内部接口直接暴露公网,无任何鉴权 | 接口被当成免费资源调用,或被爬取 |
| 对象属性暴露 | 接口返回的 JSON 里带了手机号、身份证全量字段 | 前端不展示但接口照返回,抓包即得 |
| 流量滥用 | 验证码、查询、导出类接口无频率限制 | 短信轰炸、数据爬取、资源耗尽 |
| 影子 API | 测试接口、旧版本接口上线后忘了下线 | 无人维护的入口,往往防护最弱 |
| 供应链接口 | 第三方回调接口未做签名校验 | 伪造回调篡改订单状态或资金流水 |
这六类里,越权访问造成的实际损失最大。它不需要任何技术技巧,改个参数就行。很多企业做了加密、做了 WAF,却在这个最朴素的问题上翻车。
没梳理过接口的企业,第一次做资产盘点通常会发现实际接口数量是预期的三到五倍。梳理方法有几种,可以组合使用。
从网关日志反推。如果有统一网关,日志里记录了所有经过的请求路径,按路径去重就是接口清单。这是最靠谱的方式,因为记录的是真实流量,不依赖文档。
从代码扫描提取。扫描代码里的路由定义,能拿到接口清单,但会包含未上线的、已废弃的。适合开发阶段用,运行阶段以日志为准。
从流量镜像识别。在出口做流量镜像,被动识别所有 API 调用。这种方式对遗留系统和第三方对接特别有效,因为不依赖任何配合。
清单出来后,给每个接口打三个标签:是否对外、是否涉及敏感数据、是否有鉴权。三个标签一交叉,优先级就出来了。对外加敏感数据加无鉴权的,先处理。
API 防护不是单一产品能解决的,需要从开发侧、网关侧、监测侧三层同时下手。
接口鉴权必须服务端校验,不能只靠前端隐藏。返回字段做白名单,需要什么返回什么,不要图省事返回整条记录。所有涉及资源的操作都要校验归属关系,不能只校验登录状态。这几条写进开发规范,比事后补救成本低得多。
所有 API 流量必须经过统一网关,不允许绕过。网关做四件事:身份认证(校验 token 或签名)、频率限制(按用户和按 IP 双维度)、参数校验(拦截异常格式)、访问日志(完整记录用于审计)。网关是 API 安全的必经之路,绕过网关的接口就是影子接口。
正常业务有稳定的调用模式:谁在调、调什么、什么时间调、调用量多少。建立基线后,偏离基线的行为就是可疑信号。比如某个账号突然在凌晨批量拉取用户列表,或者某个 IP 在短时间内遍历大量不同 ID,这类行为规则引擎能抓到。
市面上的 API 安全产品分两类:一类是传统 WAF 厂商扩展出的 API 防护模块,一类是专门的 API 安全平台。选型时重点看下面几点。
能不能自动发现接口。靠人工录入清单的产品,实际用起来会迅速失效,因为接口一直在变。要看它是否支持流量学习自动生成接口画像。
能不能识别业务逻辑滥用。这是 API 安全和传统 WAF 的核心区别。要看它有没有针对越权、批量拉取、参数遍历的检测规则,而不只是 SQL 注入、XSS 这些老一套。
误报率能不能接受。API 流量里正常业务和异常行为界限模糊,规则太严会阻断正常调用。要求厂商提供试用,用自己的真实流量跑一周看误报情况。
和现有架构怎么集成。是旁路镜像还是串行代理,对性能影响多大,能不能和现有网关共存。串行方案防护更彻底但有单点风险,旁路方案无侵入但只能告警不能阻断。
⚠️ 一个常见误区:以为买了 API 安全产品就万事大吉。实际上产品只能覆盖已知接口的异常行为,越权这类逻辑漏洞必须靠代码层面修复。产品是补丁,不是替代品。
第一个月,做资产和风险基线。梳理接口清单,打标签定优先级。同时对高优先级接口做一轮人工渗透,把明显的越权和未授权访问先修掉。这个阶段不需要买产品,靠人力和流程就能拿到大部分收益。
第二个月,上统一网关和基础防护。把散落的接口收敛到统一网关,开启认证、限流、参数校验。同步部署 API 监测,先跑观察模式不做阻断,积累流量基线。
第三个月,调优和常态化。根据观察期的数据调整规则,把误报压到可接受范围,再逐步开启阻断。建立接口变更流程,新接口上线前必须过安全检查。
这个节奏的前提是有专人推进。API 安全涉及开发、运维、安全三方,没有牵头人很容易卡在协调上。
云上产品的好处是和网关、负载均衡、日志服务天然打通,接入成本低。选之前建议先申请试用,用自己的真实接口流量跑一段时间,重点看误报和对业务的影响。