Una OWASP note sugiere que las referencias de objetos directos se consideran inseguras en algunos contextos. Definieron la "referencia directa de objetos" de la siguiente manera:
"Una referencia directa a un objeto se produce cuando un desarrollador expone una referencia a un objeto de implementación interna, como un archivo, directorio, registro de la base de datos o clave, como una URL o parámetro de formulario".
Alguien sugiere una solución a este problema:
Un mapa de referencia de objetos se llena primero con una lista de valores autorizados que se almacenan temporalmente en la sesión. Cuando el usuario solicita un campo (por ejemplo, color = 654321), la aplicación realiza una búsqueda en este mapa desde la sesión para determinar el nombre de columna apropiado. Si el valor no existe en este mapa limitado, el usuario no está autorizado. Los mapas de referencia no deben ser globales (es decir, incluir todos los valores posibles), son mapas / diccionarios temporales que solo se rellenan con valores autorizados.
Sin embargo, otra persona argumenta en el Wiki que los DOR son realmente inseguros solo para archivos, directorios. Esa persona agrega:
No hay forma de prácticamente DOR todas las claves primarias de la base de datos en una empresa real o un sistema posterior a la empresa.
Mi pregunta es, ¿cuán inseguras son las referencias directas de objetos a las claves primarias de la base de datos? ¿Puedes dar ejemplos concretos de vulnerabilidades? ¿Con qué frecuencia las personas hacen esfuerzos extraordinarios (como lo sugiere la primera persona) para enmascarar TODAS las claves de la base de datos?