失效的访问控制

security OpenTrojan Threat Intelligence

最常见的 Web 漏洞类别:缺失或有缺陷的授权,使用户能够访问本不应看到的对象、功能或数据。

快速解答

失效的访问控制(OWASP A01)使用户能够触及本不应访问的对象、功能或数据;修复方法是针对每一次请求在服务端强制执行对象级和功能级授权,绝不信任客户端的隐藏处理。

定义

失效的访问控制意味着授权执行缺失或有缺陷,使用户能够访问超出其权限的对象、功能或数据——位列首位的 Web 风险类别(OWASP A01)。

它是什么

失效的访问控制是排名第一的 Web 应用风险(OWASP A01)。当服务器未执行(或执行不充分)授权时就会发生,使用户能够触及本无权访问的资源、功能或管理操作——通常是通过更改对象 ID、遍历列表或调用隐藏端点。

为什么重要

与注入不同,访问控制缺陷往往是逻辑性的、静默的,且难以在 SAST 中检测。它们会导致横向/纵向权限提升和大规模数据暴露——并且是导致数据泄露的主要途径之一。

它如何工作

  • BOLA(对象级):在对 122 获得授权后请求 GET /invoice/123 并收到 123 → 对象级失效。
  • 功能级:任何用户都能触及的未经净化的管理路由。
  • 策略缺失:仅隐藏按钮的 UI(而没有服务端检查)并非访问控制。

检测

  • 使用相邻/连续 ID 进行横向遍历。
  • 本应返回 403/被拒绝的请求却返回 200/预期数据。
  • 在普通用户会话中即可触及管理/功能端点。

缓解

  • 在每次请求时于服务端 强制执行对象级 和 功能级授权(见 security:authentication-authorization、security:api-security)。
  • 默认拒绝;在可行时使用随机/不可猜测的 ID;使用权限阶梯用例进行测试(见 security:code-review-static-analysis)。

调查

针对对象/功能映射复现遍历,确认代码中缺失的检查,从日志中界定哪些对象曾被访问,然后打补丁并重新测试授权矩阵。

参考资料

还有后续问题?

向 OpenTrojan 证据驱动的助手询问本主题——回答会引用其来源。

就此向 AI 提问 发起调查