Insecure Direct Object Reference
不安全的直接对象引用 (IDOR)
描述
当应用程序在没有适当授权的情况下暴露对内部对象的直接引用时,就会发生不安全的直接对象引用 (IDOR)。
此类漏洞会导致不安全的直接引用,从而可能导致敏感数据被访问以及授权绕过。
建议
有多种方法可以防止间接对象引用漏洞:
-
使用间接对象引用: 不要暴露对内部对象(如数据库 ID)的直接引用,而是使用映射到服务器端对象的间接引用或令牌。这可以防止用户直接篡改标识符。
-
实施访问控制: 在前端和后端应用访问控制,以限制用户可以访问哪些数据。这包括基于角色的访问控制 (RBAC)、基于属性的访问控制 (ABAC) 或任何其他相关的访问控制机制。
-
使用密码学安全的对象引用: 如果可能,请使用 HMAC 或 UUID 等密码学技术生成不可预测的安全对象引用或令牌。
链接
标准
- CWE_TOP_25:
- CWE_862
- PCI_STANDARDS:
- REQ_2_2
- REQ_6_2
- REQ_6_3
- REQ_6_4
- REQ_7_3
- REQ_11_3
- SOC2_CONTROLS:
- CC_2_1
- CC_4_1
- CC_6_1
- CC_7_1
- CC_7_2
- CC_7_4
- CC_7_5
- HIPAA_CONTROLS:
- SECURITY221
- SECURITY212
- SECURITY213