Table of Contents
- 破坏的对象级授权(Broken Object Level Authorization, BOLA)
- 破坏的认证机制(Broken Authentication)
- 破坏的对象属性级授权(Broken Object Property Level Authorization, BOPLA)
- 无限制资源消耗(Unrestricted Resource Consumption)
- 破坏的功能级授权(Broken Function Level Authorization, BFLA)
- 敏感业务流程访问控制不足(Unrestricted Access to Sensitive Business Flows)
- 服务端请求伪造(Server Side Request Forgery, SSRF)
- 安全配置错误(Security Misconfiguration)
- API 资产管理不当(Improper Inventory Management)
- 不安全的 API 消费(Unsafe Consumption of APIs)
https://curity.io/resources/learn/owasp-top-ten/
破坏的对象级授权(Broken Object Level Authorization, BOLA)
破坏的对象级授权指 API 在访问具体资源对象时,没有验证当前用户是否有权限操作该对象,导致用户可以访问、修改或删除其他用户的数据。常见于订单、文件、账户信息等资源接口。
解决方法是在每次对象访问时执行授权检查,根据用户身份、资源归属关系和访问策略判断是否允许操作,而不能仅依赖对象 ID 是否存在。
破坏的认证机制(Broken Authentication)
破坏的认证机制指 API 的身份验证流程存在缺陷,使攻击者可能绕过认证、伪造身份或获取其他用户权限。常见问题包括弱密码策略、不安全 Token 管理、错误的 Session 处理以及缺少多因素认证。
解决方法包括使用标准认证协议、正确验证 Token、限制登录尝试次数、缩短凭证有效期,并采用多因素认证增强身份安全。
破坏的对象属性级授权(Broken Object Property Level Authorization, BOPLA)
破坏的对象属性级授权指用户虽然有权限访问某个对象,但可以读取或修改该对象中不应该访问的字段。例如普通用户可以修改自己的资料,但不应该修改角色、权限等级等敏感属性。
解决方法是实施字段级授权控制,只允许用户访问和修改被授权的属性,并避免直接接收客户端提交的敏感字段。
无限制资源消耗(Unrestricted Resource Consumption)
无限制资源消耗指 API 没有合理限制用户对系统资源的使用,导致攻击者可以消耗大量计算资源、存储资源或产生额外成本,例如大量请求、超大文件上传或批量操作。
解决方法包括设置请求频率限制、资源配额、请求大小限制、分页机制以及针对高消耗操作增加额外保护。
破坏的功能级授权(Broken Function Level Authorization, BFLA)
破坏的功能级授权指用户可以调用自己权限范围之外的 API 功能,例如普通用户访问管理员接口执行删除、修改权限等操作。
解决方法是在服务端对每个 API 功能进行权限校验,根据用户角色、权限策略或业务关系判断是否允许执行操作,而不能依赖前端隐藏按钮或接口地址隐藏。
敏感业务流程访问控制不足(Unrestricted Access to Sensitive Business Flows)
敏感业务流程访问控制不足指 API 虽然提供了正常业务功能,但缺少防止自动化滥用的保护机制,导致攻击者可以批量利用业务流程,例如刷优惠券、批量注册账号、抢购资源等。
解决方法是在关键业务流程中增加风险控制,包括访问频率限制、验证码、设备识别、异常行为检测以及业务规则校验。
服务端请求伪造(Server Side Request Forgery, SSRF)
服务端请求伪造指攻击者利用 API 让服务器向指定地址发起请求,从而访问内部网络、管理接口或云环境敏感资源。
解决方法包括限制服务器可访问的目标地址、禁止访问内部网络资源、使用 URL 白名单、验证用户输入,并在网络层进行隔离控制。
安全配置错误(Security Misconfiguration)
安全配置错误指系统由于错误或不安全的配置导致 API 暴露风险,例如开启调试模式、使用默认账号密码、错误配置跨域策略或暴露详细错误信息。
解决方法包括建立安全配置规范、关闭生产环境调试功能、定期检查配置、删除默认凭证,并进行自动化安全扫描。
API 资产管理不当(Improper Inventory Management)
API 资产管理不当指组织无法准确掌握 API 的数量、版本和生命周期,导致旧版本接口、测试接口或废弃接口仍然暴露在外。
解决方法包括维护完整的 API 清单、管理 API 生命周期、明确版本策略、及时下线废弃接口,并持续监控 API 暴露情况。
不安全的 API 消费(Unsafe Consumption of APIs)
不安全的 API 消费指系统调用第三方 API 时过度信任外部返回数据,没有进行充分验证,从而引入安全风险。例如支付、身份认证或数据服务返回异常结果时,系统直接接受并执行。
解决方法包括验证第三方响应数据、使用安全通信方式、限制第三方权限范围,并遵循最小信任原则。