OWASP API Security Top 10(2019)-1
字数 1093 2025-08-10 12:18:06

OWASP API Security Top 10 (2019) 教学文档

1. API基础概念

API定义:应用程序编程接口(Application Programming Interface),是促进两个软件组件之间通信的中间件,利用一组协议和定义实现请求和响应交互。

2. API安全十大漏洞(前五)

API1:2019 对象级授权被破坏(BOLA)

漏洞原理

  • 通过对象标识符检索和操作数据时缺乏授权控制
  • 属于不安全直接对象引用(IDOR)问题
  • 用户可访问未授权资源

影响

  • 数据泄露
  • 账户完全接管
  • 品牌声誉和经济损失

攻击示例

GET /apirule1/users/{ID}
  • 修改ID值可获取其他用户数据
  • 无请求验证机制

防护措施

  • 实施基于用户策略和层次结构的授权机制
  • 严格的访问控制检查
  • 使用强加密的随机令牌

API2:2019 用户身份验证损坏(BUA)

漏洞原理

  • 身份验证实施无效(如错误查询)
  • 缺乏安全机制(授权头、令牌等)
  • 允许攻击者获取更高权限

影响

  • 数据泄露、修改或删除
  • 账户完全接管
  • 用户身份冒充

攻击示例

POST /apirule2/user/login_v
  • 仅验证电子邮件,任意密码均可登录

防护措施

  • 强制使用高熵复杂密码
  • 不在GET/POST中暴露凭据
  • 启用JWT和授权头
  • 实施多因素认证
  • 密码加密存储

API3:2019 数据泄露过多

漏洞原理

  • API响应包含超出预期的信息
  • 暴露所有对象属性而不考虑敏感级别
  • 依赖前端过滤敏感数据

影响

  • 机密数据泄露(个人详情、访问令牌等)
  • 令牌可被用于调用其他关键端点

攻击示例

GET /apirule3/comment_v/{id}
  • 开发者依赖前端过滤敏感信息

防护措施

  • 不在前端过滤敏感数据
  • 定期审查API响应
  • 避免通用方法(to_string, to_json)
  • 通过测试验证数据泄露

API4:2019 缺乏资源和速率限制

漏洞原理

  • 对请求频率或资源大小无限制
  • 导致DoS或服务不可用
  • 资源利用率过高

影响

  • 违反可用性原则
  • 品牌声誉和财务损失

攻击示例

POST /apirule4/sendOTP_v
  • 无速率限制的OTP发送
  • 可被暴力破解消耗资源

防护措施

  • 使用验证码防止自动化脚本
  • 实施调用频率限制
  • 定义参数最大数据大小

API5:2019 功能级授权被破坏

漏洞原理

  • 低特权用户访问高特权功能
  • 复杂访问控制策略中的缺陷
  • 功能分离不明确

影响

  • 获取管理权限
  • 执行敏感任务
  • 违反授权和不可否认原则

攻击示例

GET /apirule5/users_v
  • 非管理员用户通过设置isAdmin=1获取所有员工数据

防护措施

  • 默认拒绝所有访问
  • 严格组权限控制
  • 检查功能级授权缺陷
  • 考虑业务逻辑层次结构

3. 总结

这五大API安全漏洞涵盖了授权、认证、数据保护、资源控制和功能权限等关键安全领域。开发人员应针对每个漏洞实施相应的防护措施,构建更安全的API系统。

OWASP API Security Top 10 (2019) 教学文档 1. API基础概念 API定义 :应用程序编程接口(Application Programming Interface),是促进两个软件组件之间通信的中间件,利用一组协议和定义实现请求和响应交互。 2. API安全十大漏洞(前五) API1:2019 对象级授权被破坏(BOLA) 漏洞原理 通过对象标识符检索和操作数据时缺乏授权控制 属于不安全直接对象引用(IDOR)问题 用户可访问未授权资源 影响 数据泄露 账户完全接管 品牌声誉和经济损失 攻击示例 修改ID值可获取其他用户数据 无请求验证机制 防护措施 实施基于用户策略和层次结构的授权机制 严格的访问控制检查 使用强加密的随机令牌 API2:2019 用户身份验证损坏(BUA) 漏洞原理 身份验证实施无效(如错误查询) 缺乏安全机制(授权头、令牌等) 允许攻击者获取更高权限 影响 数据泄露、修改或删除 账户完全接管 用户身份冒充 攻击示例 仅验证电子邮件,任意密码均可登录 防护措施 强制使用高熵复杂密码 不在GET/POST中暴露凭据 启用JWT和授权头 实施多因素认证 密码加密存储 API3:2019 数据泄露过多 漏洞原理 API响应包含超出预期的信息 暴露所有对象属性而不考虑敏感级别 依赖前端过滤敏感数据 影响 机密数据泄露(个人详情、访问令牌等) 令牌可被用于调用其他关键端点 攻击示例 开发者依赖前端过滤敏感信息 防护措施 不在前端过滤敏感数据 定期审查API响应 避免通用方法(to_ string, to_ json) 通过测试验证数据泄露 API4:2019 缺乏资源和速率限制 漏洞原理 对请求频率或资源大小无限制 导致DoS或服务不可用 资源利用率过高 影响 违反可用性原则 品牌声誉和财务损失 攻击示例 无速率限制的OTP发送 可被暴力破解消耗资源 防护措施 使用验证码防止自动化脚本 实施调用频率限制 定义参数最大数据大小 API5:2019 功能级授权被破坏 漏洞原理 低特权用户访问高特权功能 复杂访问控制策略中的缺陷 功能分离不明确 影响 获取管理权限 执行敏感任务 违反授权和不可否认原则 攻击示例 非管理员用户通过设置isAdmin=1获取所有员工数据 防护措施 默认拒绝所有访问 严格组权限控制 检查功能级授权缺陷 考虑业务逻辑层次结构 3. 总结 这五大API安全漏洞涵盖了授权、认证、数据保护、资源控制和功能权限等关键安全领域。开发人员应针对每个漏洞实施相应的防护措施,构建更安全的API系统。