API 安全
保护应用程序编程接口:对 API 滥用进行身份验证、授权、输入验证、速率限制和监控。
快速解答
通过在每个端点上强制执行身份验证和授权、验证所有输入、应用速率限制并监控滥用来保护 API;OWASP API Top 10(例如对象级授权失效)是主要的风险清单。
定义
API 安全是保护暴露应用程序功能和数据的接口的实践,涵盖身份验证、授权、输入验证、速率限制和滥用监控。
它是什么
API 安全保护那些暴露应用程序功能和数据的程序化接口。由于 API 直接、自动化且常常在边缘缺乏身份验证,它们成为枚举、数据收集和滥用的主要目标。
为什么重要
现代数据泄露不成比例地始于有缺陷的 API。最常见且破坏性最大的缺陷——对象级授权失效(BOLA)——让攻击者仅通过更改一个 ID 就能访问从未被授权查看的对象。OWASP 的 API Security Top 10 是权威的风险清单。
它如何工作
- 身份验证与授权:对调用方进行身份验证(参见
security:authentication-authorization),并在对象级别而非仅在端点级别授权每次资源访问。 - 输入验证:验证类型、长度和模式,以防止注入和批量赋值(mass-assignment)。
- 速率限制与节流:按身份和按 IP 的限制,以阻止暴力破解和爬取。
- 秘密与令牌:绝不硬编码秘密;使用短生命周期、限定作用域的令牌。
检测
- 按身份统计的异常请求量,或跨大量 ID 的分页遍历(BOLA 探测)。
- 大量带有看似有效令牌的 401/403(令牌窃取 / 重放)。
- 单个主体从 API 返回异常大的数据量。
缓解
- 在每次读/写上强制对象级授权;使用水平权限提升用例进行测试。
- 在 API 网关上应用速率限制、身份验证和输入验证。
- 审计并管理所有端点的版本;记录授权拒绝和数据暴露事件。
- 轮换令牌并限定作用域;拒绝过宽的作用域。
调查
通过网关/API 日志调查 API 滥用或数据暴露事件:主体、请求的对象 ID、响应大小以及被限流的事件。关联授权和身份验证日志。相关工具:对端点响应进行安全头审查(guides:tool-headers-guide)。