¿Hay algún peligro para la creación de UUID en Javascript del lado del cliente?

StackOverflow https://stackoverflow.com/questions/1296234

  •  18-09-2019
  •  | 
  •  

Pregunta

necesito para generar UUID para almacenar el tiempo en una base de datos. ¿Puedo generar UUID tesis de JavaScript en el navegador del cliente ( Hay algunos ejemplos aquí )?

¿Hay algún riesgo para la seguridad de hacerlo de esta manera? Yo entiendo que cualquier persona puede modificar el UUID antes de que se pasa al servidor para su almacenamiento. Por lo que tendrá que comprobar si son apunté único antes de almacenarlos en la base de datos, pero aparte de eso, ¿hay alguna otra cosas A la caja?

(Lo siento por mi Inglés, no dude en corregir los errores gramaticales)

editar Para responder a preguntas sobre qué querría hacer esto, es porque puedo crear un nuevo objeto y es identificador en Javascript y añadirlo a mi punto de vista y luego hacer una llamada AJAX a el servidor para agregarlo a la base de datos. De esta manera, no es necesario cargar de nuevo de la base de datos para saber cuál es su identificador primario.

¿Fue útil?

Solución

En realidad no. Mientras que es un identificador simple y nada más, y que de hecho se comprueba si existe alguna validez y singularidad, que no es diferente de las cuentas de usuario que tienen un ID en la URL, por ejemplo.

Mire a su barra de URL. Apuesto 1.296.234 es la clave principal de esta pregunta, pero no puedo hacer nada con esa información. Lo mismo pasa con la secuencia de comandos.

Otros consejos

¿Qué beneficio es lo que ves en la generación de éstos del lado del cliente? En honor a la verdad, la mejor opción es para generarlo del lado del servidor, fuera del alcance de los usuarios. Puede que no dará salvar de los problemas de seguridad graves, pero se va a reducir la validación redundante.

Sí. El riesgo no es específico de UUID, cualquier lado del cliente generada ID tiene algunos riesgos, dependiendo de lo que haces con el ID. El problema es que es muy difícil para autenticar el Javascript. Si acepta ID generado por el cliente, usted acepta los ID de los piratas informáticos.

Los riesgos pueden incluir,

  1. Sesión robo. Si se utiliza el ID para identificar la sesión, alguien puede utilizar un ID existente como la generada ID y el servidor puede tratar como una sesión existente si se cuida bien no está tomando.

  2. Los duplicados de las llaves. Es cierto UUID es aleatorio pero alguien puede generar duplicados de las llaves, que se hace un lío de su base de datos.

Usted puede encontrar maneras de defenderse contra cada uno de estos ataques, pero eso es la protección pasiva. Se podría frustrar el propósito original de la generación de identificadores en el cliente, que es simple.

¿Hay alguna razón no se puede tener la base de datos genera (incremento) una identificación?

Si, como usted dice, usted tiene que comprobar la singularidad del valor antes de la presentación de todos modos, ¿por qué no tiene cualquier idioma backend que está utilizando generarlo. Eso haría mucho más opaco.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top