Eso no se parece a un ObjectID MongoDB - un ObjectID es de 12 bytes de datos binarios, y cuando se procesa como una cadena hexadecimal (la forma habitual de usarlo en una URL) sería de 24 caracteres de longitud. Supongo que está utilizando el official PHP Mongo Driver, en cuyo caso el constructor de la clase MongoId
ignorará los valores no válidos y generará uno nuevo para usted. En cualquier caso, es mejor dejar que el controlador genere un ObjectID/MongoId
, ya que lo hará de una manera que evite colisiones.
En cuanto a la seguridad de su uso en sus URL, debería estar bien. Por supuesto, debe utilizar las precauciones habituales sobre la implementación de código para garantizar que el usuario actual tenga acceso para ver el objeto que se muestra, etc., pero no existe mayor riesgo de seguridad al usar un ObjectID en la URL que cualquier otro identificador de base de datos (cadena , entero, etc.) y, a menudo, hay menos, ya que ObjectID no tiene ningún valor semántico (mientras que una cadena como "adminuser" en una URL puede transmitir que esa URL se relaciona con un usuario con privilegios elevados).
No se puede ver ningún problema con eso. Es lo mismo que usar una ID de RDBMS generada en una URL – Phil
Puede usar: https://github.com/treygriffith/short-mongo-id – user956584