OWASP 是什么?一文看懂 API Security Top 10
OWASP(Open Worldwide Application Security Project)是一个开放的应用安全社区。它提供安全标准、测试指南、工具和漏洞项目,其中最知名的是 OWASP Top 10。
需要注意的是,Web Application Top 10 和 API Security Top 10 不是同一份清单。前者关注整个 Web 应用,后者专门讨论 API 暴露出来的业务逻辑、数据和接口资产风险。

为什么 API 需要单独讨论安全
传统页面通常由服务端决定展示什么,而 API 会直接返回结构化数据,并允许客户端传入对象 ID、字段和值。只要权限判断少做一层,就可能出现越权读取、敏感字段被修改或后台接口被普通用户调用。
API 还更容易被脚本批量调用,因此风险不只来自代码漏洞,也来自业务流程被自动化滥用,例如刷票、批量注册、撞库、薅券和短信轰炸。
2023 版 API Security Top 10

最容易混淆的三类授权问题
授权问题在 10 项风险中占了很大比例,但它们控制的层级不同:
BOLA:用户能不能访问这个对象。
BOPLA:用户能不能读取或修改对象中的某个字段。
BFLA:用户能不能调用这个功能或接口。

一个接口可能同时存在三种问题。例如管理员修改用户信息的接口,如果只验证了登录状态,没有验证目标用户、调用者角色和可修改字段,那么对象级、功能级、属性级授权都会失效。
开发中真正需要落实的做法
1. 不信任客户端传入的身份和权限
userId、role、tenantId 等字段不能直接作为授权依据。身份应从服务端验证过的会话或 Token 中取得,权限则由服务端重新计算。
2. 查询对象后立即校验归属
只写 findById(id) 不够。还要校验该对象是否属于当前用户、租户或当前角色允许访问的范围。更稳妥的方式是把权限范围直接写进查询条件。
3. DTO 使用字段白名单
不要把数据库实体直接作为请求参数或响应结果。请求 DTO 只接收允许修改的字段,响应 DTO 只返回业务真正需要展示的字段。
4. 限流不仅按 IP
共享出口、代理和机器人网络会削弱单纯 IP 限流的效果。实际项目通常要组合用户、设备、Token、接口、租户和业务动作进行配额控制。
5. 所有外部数据都按不可信处理
第三方 API、Webhook、对象存储回调和内部服务返回值,同样可能被篡改或异常污染。需要做格式校验、签名验证、超时、重试上限和熔断。
6. 维护真实的 API 资产清单
接口文档不等于资产清单。还需要记录域名、环境、版本、负责人、认证方式、数据级别和下线日期,避免测试接口与废弃版本成为长期入口。

两个常见误区
误区一:接入 WAF 就安全了。
WAF 擅长拦截已知攻击特征,但很难判断“用户 A 是否有权读取订单 1001”。业务授权仍然必须在应用内部完成。
误区二:注入没有进入 2023 API Top 10,就不需要防。
Top 10 是风险意识清单,不是完整漏洞字典。SQL 注入、命令注入、XSS、CSRF 等问题依然存在,也仍需参数化查询、输入校验和安全编码。
总结
OWASP API Security Top 10 的重点不是让开发者背十个名词,而是提醒团队关注 API 的真实边界:
谁在调用;
能访问哪个对象;
能读写哪些字段;
能调用哪些功能;
调用频率和成本是否可控;
暴露了哪些版本和外部依赖。
把这些问题落实到统一鉴权、字段白名单、限流、资产治理和持续审计中,才是 API 安全真正有效的落地方式。
参考资料
知乎:《OWASP 是什么意思,OWASP TOP10 API 安全风险》
https://zhuanlan.zhihu.com/p/690559140OWASP API Security Project
https://owasp.org/www-project-api-security/OWASP API Security Top 10 — 2023
https://owasp.org/API-Security/editions/2023/en/0x11-t10/Akamai:《OWASP 十大 API 安全风险:2023 年版终于问世》
https://www.akamai.com/zh/blog/security/owasp-top-10-api-security-risks-2023-edition
OWASP 是什么?一文看懂 API Security Top 10
https://lautung.com/archives/owasp%E6%98%AF%E4%BB%80%E4%B9%88-%E4%B8%80%E6%96%87%E7%9C%8B%E6%87%82api-security-top-10
评论