Siempre que la aplicación esté debidamente protegida y nadie tenga acceso directo a la base de datos, debe estar seguro. Al contrario de lo que algunas personas puedan imaginar, el _id no es un hash del contenido del objeto, y su valor depende solo de la marca de tiempo y la máquina donde se ejecuta el servidor. Para los efectos más prácticos, es lo mismo que usar una identificación secuencial o cualquier otro tipo de clave primaria: una cadena única o UUID, por ejemplo.
En mi opinión, preocuparse (demasiado) por el _id de MongoDB es una especie de práctica de “seguridad a través de la oscuridad”, que se sabe que es una visión miope en cuestiones de seguridad. Si su sistema es vulnerable al conocer esta información, entonces tiene mayores problemas de los que preocuparse.
Harry Heymann comentó sobre su respuesta que, en algunos casos, conocer la marca de tiempo puede ser un problema para algunas aplicaciones en particular; después de leer su respuesta, supongo que tiene razón, pero aun así es una vulnerabilidad muy limitada que le permite inferir una información eso no estaba directamente disponible antes; Probablemente no sea algo que pueda explotar para obtener acceso a un sistema o algo así. Si ese es su caso, y tiene buenas razones para preocuparse, puede anular el campo MongoDB _id. La documentación en http://www.mongodb.org/display/D… explica lo que necesita saber.
- Si pudieras decirle a una clase de estudiantes principiantes de diseño web una cosa sobre JavaScript, ¿cuál sería?
- ¿Qué CMS o herramientas es mejor para hacer un sitio de revista?
- ¿Cuál es el futuro de los backends, PHP o Node.js?
- ¿Por qué Facebook convierte su código PHP a C ++?
- ¿Existe alguna herramienta / método gratuito para ofrecer actualizaciones de contenido en WordPress?