Insecure Direct Object Reference
Insecure Direct Object Reference
Descripción
Un IDOR (Insecure Direct Object Reference) se produce cuando una aplicación expone una referencia directa a un objeto interno sin la debida autorización.
Esta clase de vulnerabilidad da como resultado una referencia directa insegura, lo que puede provocar el acceso a datos sensibles y la omisión de autorización.
Recomendación
Existen varias formas de prevenir las vulnerabilidades de referencia indirecta de objetos:
-
Utilizar referencias de objetos indirectas: En lugar de exponer referencias directas a objetos internos (como ID de bases de datos), utilice referencias indirectas o tokens que se asocian a los objetos del lado del servidor. Esto evita que los usuarios alteren directamente los identificadores.
-
Implementar controles de acceso: Aplique controles de acceso tanto en el frontend como en el backend para imponer restricciones sobre a qué datos pueden acceder los usuarios. Esto incluye el control de acceso basado en roles (RBAC), el control de acceso basado en atributos (ABAC) o cualquier otro mecanismo de control de acceso pertinente.
-
Utilizar referencias de objetos criptográficamente seguras: Si es posible, utilice técnicas criptográficas como HMAC o UUID para generar referencias de objetos o tokens seguros e impredecibles.
Enlaces
Estándares
- 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