Quiero que mi sitio web tenga una casilla de verificación en la que los usuarios puedan hacer clic para que no tengan que iniciar sesión cada vez que visiten mi sitio web. Sé que necesitaré almacenar una cookie en su computadora para implementar esto, pero ¿qué debería contener esa cookie?
Además, ¿hay errores comunes a tener en cuenta para evitar que esta cookie presente una vulnerabilidad de seguridad, que podría evitarse mientras se brinda la funcionalidad 'recordarme'?
security
cookies
remember-me
Vort3x
fuente
fuente
Respuestas:
Mejor práctica de cookies de inicio de sesión persistente mejorada
Puede utilizar esta estrategia descrita aquí como práctica recomendada (2006) o una estrategia actualizada descrita aquí (2015):
Este enfoque proporciona defensa en profundidad. Si alguien logra filtrar la tabla de la base de datos, no le da al atacante una puerta abierta para hacerse pasar por usuarios.
fuente
Almacenaría una identificación de usuario y un token. Cuando el usuario regrese al sitio, compare esos dos datos con algo persistente como una entrada de la base de datos.
En cuanto a la seguridad, simplemente no coloque nada que permita que alguien modifique la cookie para obtener beneficios adicionales. Por ejemplo, no almacene sus grupos de usuarios o su contraseña. Cualquier cosa que pueda modificarse que eluda su seguridad no debe almacenarse en la cookie.
fuente
Almacene su UserId y un RememberMeToken. Cuando inicien sesión con recordarme marcado, genere un nuevo RememberMeToken (que invalida cualquier otra máquina que esté marcada, recuérdame).
Cuando regresen, búsquelos con el token recordarme y asegúrese de que el ID de usuario coincida.
fuente
Investigando sesiones persistentes, descubrí que simplemente no vale la pena el riesgo de seguridad. Úselo si es absolutamente necesario, pero debe considerar una sesión tan débilmente autenticada y forzar un nuevo inicio de sesión para cualquier cosa que pueda ser de valor para un atacante.
Por supuesto, la razón es que sus cookies que contienen su sesión persistente se roban tan fácilmente.
4 formas de robar sus cookies (de un comentario de Jens Roland en la página
@splattne
basado en su respuesta):fuente