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系统。