首页/安全/渗透测试与安全评估速查/API 对象级授权检查(BOLA)
常见漏洞验证121 条

API 对象级授权检查(BOLA)

对象级授权缺失是接口类最常见问题:用两个账号交叉访问对象资源,确认服务端按会话校验归属。

对象级授权检查(BOLA)

对象级授权缺失是接口类系统最常见的问题:服务端只验证了会话有效,没有验证请求的对象是否属于当前主体。验证方式是准备两个账号,各自创建数据后交叉访问对方的对象标识,观察服务端是否拒绝。判定要结合数据敏感度,公开数据的交叉可读通常不构成越权。

基本信息

检查对象订单、用户资料、消息、账单、文件
核心方法两个账号交叉访问对方对象标识
验证顺序读优先,写操作仅在授权下进行
标识形态数字编号、随机字符串、嵌套对象标识
记录要求接口、标识类型、结果分类、数据敏感度

典型使用场景

  • 订单与工单详情接口的对象归属校验
  • 用户资料与设置接口的跨账号访问
  • 消息与通知接口按标识读取他人内容
  • 账单与发票下载接口的归属校验
  • 文件与附件接口的标识可枚举问题

验证步骤

验证步骤
# 1. 整理对象类端点清单与标识形态(数字/随机/嵌套)
# 2. 用账号 A 创建测试数据,记录其对象标识
# 3. 用账号 B 携带自身会话访问账号 A 的对象标识
# 4. 分别记录:可读 / 可写 / 已拒绝 三类结果
# 5. 写操作仅在授权允许时进行,完成后即时恢复原数据

结果分类读法

结果判定依据定级参考
可读他人对象返回非当前主体的数据中高,取决于数据敏感度
可写他人对象修改成功且返回成功状态高,需评估数据完整性影响
已拒绝返回权限错误或空结果正常,记录为已校验
不确定缓存或异步导致结果不一重复验证并标注待复核
BOLA 覆盖所有对象类端点:列表、详情、更新、删除、批量与嵌套子接口都要检查,只测详情会遗漏大部分面。
修复视角:在数据访问层统一按当前主体过滤,而不是在每个业务方法里各自判断归属。

易错点

  • 只测数字编号标识,漏掉随机字符串与嵌套对象标识
  • 把能查到公开数据的接口判为越权,未区分数据敏感度
  • 写操作验证后未恢复数据,造成业务数据被修改
  • 只用单账号自测,无法形成有效的归属对比

数据来源与参考

  • OWASP API Security Top 10(API1)
  • OWASP WSTG WSTG-ATHZ-04
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌