¿Son las cookies de HTTP solo lo suficientemente seguras para implementar la funcionalidad de "recordarme"?

1

Tengo un sitio web que tiene una funcionalidad de "recordarme". Cuando alguien hace clic en esa funcionalidad, establece la contraseña de usuario y el nombre de usuario en una cookie para recordarlo. Está bien, está bien.

Sin embargo, esa cookie es una cookie solo de HTTP (no se preocupe por XSS) con el indicador de seguridad establecido. ¿Es suficiente seguridad allí?

Ahora que la cookie no puede viajar en texto sin formato (según la marca de seguridad), no se puede leer a través de javascript ( document.cookie ). Así que mi opinión es que esta implementación es lo suficientemente segura. Pero tengo curiosidad por saber el tuyo.

    
pregunta Utkarsh Agrawal 01.12.2017 - 05:37
fuente

1 respuesta

7

Hay algunos problemas con este esquema.

  1. Nunca debe almacenar la contraseña real en la cookie. Almacene un token de sesión temporal que esté asociado con la cuenta (en el servidor) y luego puede eliminar ese token cuando el usuario cierre la sesión. Si solo está almacenando las credenciales del usuario, no hay forma de finalizar una sesión (en el lado del servidor) sin finalizar todas las sesiones (invalidando las credenciales).
  2. Almacenar la contraseña en la cookie significa que cualquier persona que tenga acceso a la cookie (por ejemplo, otro usuario en la misma computadora) siempre podrá iniciar sesión como el usuario "recordado" mirando esas credenciales, memorizándolas. , y llevándolos a otra computadora. Los tokens de sesión deben ser largos y aleatorios, e idealmente de corta duración.
  3. HttpOnly proporciona NOT protección contra XSS. Ni siquiera está cerca. Todo lo que hace es evitar que el script lea la cookie. Alguien todavía puede hacerse cargo de la sesión del navegador del usuario que ha iniciado sesión, y tomar cualquier acción que el usuario pueda tomar, y enviar al atacante todo lo que el usuario pueda ver. De hecho, hay un completo marco de explotación que lo hace explícitamente, esencialmente permitiendo que el atacante controle la sesión del navegador de la víctima. Aún necesitas protecciones XSS cuidadosas.
  4. HttpOnly no protegerá en absoluto si hay alguna página que refleje los valores de la cookie desde el servidor. Un XSS podría leer la respuesta del servidor. Para ser justos, no dijiste que existía una página de este tipo, pero solo quería resaltar cómo es la "protección" de HttpOnly . Cualquier cosa que pienses "esto no sería seguro, excepto por HttpOnly " es casi seguro que no sea seguro, incluso con eso.
respondido por el CBHacking 01.12.2017 - 08:18
fuente

Lea otras preguntas en las etiquetas