¿Cuál es un método preferido para la creación consciente de la seguridad de las cookies de inicio de sesión [duplicado]

0

Estoy trabajando en una aplicación web que usa localStorage solo ( enlace ) para permitir que el usuario cree una cuenta de servidor y tenga cosas sincronizada a través de HTTPS al servidor para que la aplicación web no se encadene a una sola computadora.

Me estoy topando con una pequeña pared de ladrillos en una pieza de seguridad. El almacenamiento de la cookie sin cifrar de texto sin formato es una bandera roja, pero tengo problemas para hacer un arreglo que no parezca isomorfo para almacenar una cookie sin cifrar. Si almaceno un hash de la contraseña más un secreto, solo mi servidor puede generar una cookie aceptada, pero alguien que acceda a la cookie también podría tener la contraseña de texto simple. Lo mejor que he podido imaginar es agregar la fecha de caducidad de ISO8601 al secreto y la contraseña, y luego hacer que el servidor la compare con los hashes calculados desde hoy hasta n-1 días en el futuro. Y en ese momento tengo lo que parece ser una copia de texto simple de la contraseña que solo es válida por mucho tiempo ... mejor, pero no tanto mejor.

¿Cuál es la mejor manera de hacer que una cookie sea transparente desde la perspectiva del usuario y tan inútil para un cracker como sea posible?

    
pregunta JonathanHayward 28.08.2012 - 21:43
fuente

1 respuesta

0

Al iniciar sesión, cree un valor aleatorio que se almacena en su base de datos con una fecha de vencimiento de su elección (1 día, 1 año, lo que sea). Pase ese valor aleatorio al navegador del cliente con la caducidad correspondiente de su elección (solo sesión, años, etc.)

Ahora, cuando el cliente visite una página, transmitirá la cookie aleatoria a su servidor que no tiene conexión con su contraseña. Si verifica que la cookie coincide con ese usuario en su base de datos, entonces se autentican.

Esto también le brinda a usted (y a sus usuarios si lo implementa) la capacidad de eliminar todas las sesiones independientemente del cambio de contraseña. También significa que debe implementar el código para eliminar todas las sesiones tras un cambio de contraseña.

    
respondido por el Jeff Ferland 29.08.2012 - 05:30
fuente

Lea otras preguntas en las etiquetas