Cierre de sesión vinculado a la caducidad de la cookie

3

Estoy buscando un evento para cerrar automáticamente la sesión de un usuario de la aplicación. Normalmente lo haría cuando caduque una sesión inactiva. Me preguntaba si es seguro hacerlo utilizando cookies. Así que aquí están mis preguntas,

  • ¿Es seguro tener un algoritmo de cierre de sesión vinculado a la caducidad de las cookies?
  • ¿El cliente puede manipular la fecha / hora de caducidad de la cookie?
  • Si es posible la manipulación, ¿es verdad para cookies "seguras" (conjunto de bandera de seguro / HttpOnly)
pregunta Yazad Khambata 12.08.2015 - 20:56
fuente

1 respuesta

6

El estado de la sesión dentro de una aplicación debería administrarse idealmente desde el lado del servidor desde una perspectiva de seguridad.

Por lo tanto, en términos de caducidad, se debe almacenar una lista de sesiones activas y se deben eliminar del servidor después de un período de inactividad acordado (exactamente lo que esto dependerá de la sensibilidad de la aplicación, la base de usuarios, etc.)

La aplicación también debe ofrecer un servicio de cierre de sesión explícito que finalice la sesión del usuario en el servidor.

Si confía en las medidas del lado del cliente (por ejemplo, la caducidad de la cookie), siempre existe el riesgo de que un atacante obtenga acceso a una cookie y la reproduzca después de que haya transcurrido la caducidad. Si su aplicación no puede saber si esa cookie debería seguir siendo válida, esto puede exponerla a un acceso no autorizado.

En este caso, el uso de marcas de cookies (por ejemplo, seguro, httpOnly) puede reducir los riesgos de que un atacante ponga en peligro el token de sesión de un usuario, pero no elimina el problema central que el servidor no puede decir si la cookie aún debería Sea válido o no.

Es posible controlar la caducidad de la sesión sin mantener el estado en el servidor mediante el uso de cookies que están protegidas contra la manipulación y almacenar la fecha / hora de caducidad dentro de ellas (p. ej., la gestión de sesión predeterminada de ASP.NET), pero esto se debe a la debilidad de hacer Es difícil permitir que los usuarios terminen explícitamente la sesión antes de la hora almacenada en la cookie.

    
respondido por el Rоry McCune 12.08.2015 - 21:18
fuente

Lea otras preguntas en las etiquetas