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

API 功能级授权检查(BFLA)

功能级授权检查:低权限主体调用管理侧功能端点(用户管理、配置、批量操作)时服务端是否拒绝。

功能级授权检查查什么

认证解决「你是谁」,授权解决「你能做什么」。功能级授权缺陷指的是低权限主体能调用管理侧的功能端点:用户管理、配置修改、批量操作、审批与导出。这类问题常见于前后端分离系统——前端按角色隐藏了按钮,但服务端接口没有做接口级权限校验。检查方法是拿到管理侧端点清单,用低权限账号逐个重放,先读后写,逐条记录放行情况。

基本信息

对象管理端点、批量操作、配置类与导出类接口
方法用低权限会话重放管理侧请求,先读后写
端点清单来源接口文档、抓包流量、网关配置、前端资源包
常见盲区GraphQL 与 RPC 接口、移动端保留的管理入口
修复方向接口级权限点与角色绑定,默认拒绝

典型使用场景

  • 越权类评估的核心项,覆盖率直接影响报告质量
  • SaaS 与多租户系统的租户隔离核查
  • 评估权限模型是否按接口实现,而非仅靠前端隐藏
  • 旧版客户端接口核查:为兼容保留的管理入口风险最高
  • 修复验证:确认默认拒绝策略已覆盖全部管理端点

验证步骤

验证步骤
# 1. 从管理侧收集端点清单:文档、流量、网关配置、前端资源包
# 2. 用低权限账号逐个重放(先只读,确认后再评估写操作)
curl -s -H 'Authorization: Bearer <低权限账号令牌>' https://api.example.com/v1/admin/users | head -5
curl -s -o /dev/null -w 'low-priv write %{http_code}\n' -X POST \
  -H 'Authorization: Bearer <低权限账号令牌>' https://api.example.com/v1/admin/users -d '{}'
# 3. 记录放行端点、返回内容特征与数据范围(是否仅本租户)
# 4. 与权限设计文档比对差异;写操作确认以最小影响方式完成

响应与判断

响应含义处置
403 或无权限提示接口级授权生效记录为已核查
200 且返回全量管理数据功能级授权缺失列缺陷并评估数据范围与影响
200 但仅返回本租户数据存在行级隔离,功能级待确认区分功能授权与数据隔离分别记录
404 或 405该角色不可达或方法不支持核对是否为路由级隐藏,需换路径验证
移动端与旧版客户端常保留管理功能入口:这些接口为了兼容性往往校验最松,应优先纳入清单。
网关层与业务层权限校验不一致是常见情况:网关放行后业务层是否再校验,必须用低权限账号实测确认。

易错点

  • 只测 REST 风格端点:漏掉 GraphQL 与 RPC 接口,覆盖结论不成立
  • 忽略网关与业务层校验不一致:网关放行不代表有权限,实测才能定论
  • 用写操作直接验证:可能改动真实业务数据,应先只读确认再评估写操作
  • 端点清单只靠文档:文档常不完整,需结合流量与前端资源包补齐

数据来源与参考

  • OWASP API Security Top 10(API5)
  • OWASP WSTG WSTG-ATHZ-02
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌