usenewurlparser start parse nodejs new myproject mongoclient security url mongodb

security - start - ¿Los ID(ObjectIds from mongo) son seguros para usar en una URL?



url mongodb nodejs (2)

_id campo de MongoDB es (de forma predeterminada) de tipo ObjectID . No es un SHA1.

Y su representación de cadena (como 4ed7cbfd1d96406ca0000015 es, con seguridad, URL-safe. Lo uso en todas partes).

Quiero decir, es seguro exponerlo en todos lados donde pondría un identificador int regular ( /products/3 o /users/42 o lo que sea).

En su sitio, debe verificar si un usuario está conectado y si tiene acceso a una URL determinada. No debe permitir ciegamente que los usuarios visiten las URL con ObjectID en ellas, simplemente porque (ids) no son fáciles de adivinar (aunque son más fáciles que SHA1)

Hace poco me dijeron que usar los campos _id de mongodb en una URL no es seguro. Me preguntaba si eso es cierto.

Mi sitio está restringido a usuarios registrados, y cada usuario tiene sus puntos finales de URL que contienen un id de mongo. Es el típico campo _id mongodb - un SHA1. AFAIK, la identificación no se puede deducir, e incluso si alguien acierta con la identificación de otra persona, la autenticación basada en la sesión en mi aplicación no permite el acceso. Nadie tiene acceso directo a la base de datos que no sea la aplicación en sí.

Tengo curiosidad por saber si me estoy perdiendo algo.

Editar: pregunta aclarada. (Los ObjectID de mongodb no son SHA1)


Es una buena idea usar cadenas aparentemente aleatorias como _id (o crear guid) en URL en lugar de en número. Si tienes una API pública, usuario / 1001, usuario / 20032 es solo pedirle a los piratas informáticos que adivinen el próximo número y obtengan información de usuario aleatoria.