¿Dónde se almacenan las credenciales de usuario cuando se selecciona la contraseña para recordar?

4

Siempre que un usuario haya elegido la opción de recordarme cuando se conectó por última vez en una aplicación web, ¿cómo identifica el servidor de aplicaciones web la próxima vez que inicia sesión? ¿Las credenciales se almacenan en cookies en el propio lado del cliente? Eso haría grandes problemas de seguridad, ¿verdad? Alguien por favor explique

    
pregunta Anandu M Das 01.10.2014 - 13:43
fuente

3 respuestas

7

El navegador del usuario almacena algunas cookies con una cadena aleatoria que identifica al usuario en el servidor. Las variantes más seguras de esto también verifican otros parámetros como la versión del navegador, el sistema operativo del usuario y la ubicación aproximada.

Básicamente, si visitas una página web como Facebook con una cookie, solo te autenticas con la cadena aleatoria en la cookie.

Cómo funciona esto: Si inicia sesión, el servidor genera esta cadena aleatoria y la almacena en su base de datos (junto con otros parámetros de identificación). Además, envía esta cadena como una cookie al navegador del usuario, donde se almacena y se envía a la página con cada solicitud. Por lo tanto, si hay una solicitud con un valor aleatorio, el servidor verifica si coincide con los otros parámetros de identificación y, si es así, lo acepta como usuario registrado.

    
respondido por el Tokk 01.10.2014 - 13:52
fuente
2

Esta es una pregunta bastante amplia, ya que podría (y ha sido) implementada en una gran cantidad de formas diferentes. Por lo general, implican almacenar una cookie persistente en el navegador, y aquí hay algunas. La cookie podría contener:

  1. Un token de autenticación. (Como Tokk describió en su respuesta). Con el estado en el servidor (en la base de datos, por ejemplo) cuando un usuario regresa, puede vincular el token de autenticación a su cuenta de usuario.
  2. Un identificador de usuario. Este es un modelo sin estado que no requiere que mantenga un registro de la sesión en el servidor. Mientras el usuario continúe visitando una cookie que contenga un identificador de usuario válido, se autenticará y ya no importa si hay 10 segundos entre solicitudes de página o 10 días.
  3. Credenciales. Este modelo híbrido con estado / sin estado es que no es necesario mantener un registro de la sesión, pero hay una diferencia entre un usuario autenticado (que tiene una cookie de sesión) y un usuario recordado (que tiene la cookie con las credenciales) , pero aún no hay una cookie de sesión.) Esto puede ser un agujero de seguridad masivo si las credenciales se almacenan en la cookie en texto plano, y sí, algunos sitios lo hacen (o lo han hecho). Con el cifrado adecuado, bueno, no lo elegiría, pero no es un gran riesgo de seguridad en ese caso. (Existe un poco de riesgo adicional en el hecho de que la aplicación está realizando un procesamiento adicional innecesario de credenciales, pero es un riesgo relativamente pequeño).

¿Qué es el gran riesgo de seguridad en la función "Recordarme"? Principalmente que le está dando al usuario una cookie que es válida en el futuro, y la ventana para el abuso en caso de que dicha cookie sea mal utilizada es ahora mucho más grande. Por lo tanto, teniendo esto en cuenta, se debe tener cuidado para proteger esta cookie. HTTPS debe usarse como primera línea de defensa, por ejemplo, y la cookie debe estar marcada como secure . Es útil si tiene un modelo con estado que le permita al usuario finalizar forzosamente las sesiones válidas cuando ya no las necesita, para frenar posibles abusos.

Entonces, tl; dr es: Sus credenciales pueden o no estar almacenadas en una cookie. Si están y no están correctamente encriptados, entonces este es un riesgo importante. Probablemente no es así como se implementa la función "Recordarme" en un sitio web determinado, pero en caso de duda, revise sus cookies y vea.

    
respondido por el Xander 02.10.2014 - 12:37
fuente
-1

Las credenciales nunca se almacenan ni al final del usuario ni al final del servidor (si están configuradas según los estándares de seguridad). Si desea mantener su sesión activa durante un tiempo prolongado, o asegurarse de que su contraseña se recuerde la próxima vez que inicie sesión, entonces el navegador se comunica con el servidor para generar un conjunto aleatorio de datos que se almacena en forma de Cookies .

Cuando visite el mismo sitio la próxima vez, la cookie que es única para su inicio de sesión se utilizará para autenticar e iniciar sesión automáticamente en su cuenta.

    
respondido por el abhinav singh 02.10.2014 - 11:32
fuente

Lea otras preguntas en las etiquetas