¿Cómo evitar que las cookies caducadas mantengan los accesos?

1

Mi empresa tiene un sitio web que recientemente fue objeto de una auditoría de seguridad. Descubrieron que si un pirata informático hubiera obtenido las cookies del navegador utilizadas por nuestro sitio web de .NET para la autorización, dichas cookies podrían utilizarse para acceder al sitio incluso después de que el usuario para el que fueron creados hubiera cerrado la sesión manualmente y las insertó en su navegador.

¿El vencimiento de una cookie cambia la propia cookie para que el sitio web .NET sepa que está vencido? En caso afirmativo, ¿cómo sabe .NET (o un sitio web en general) que la cookie no vencida que el hacker obtuvo ahora está vencida?

    
pregunta dckuehn 28.09.2018 - 17:41
fuente

1 respuesta

4

¿Cómo funcionan las sesiones?

Antes de que pueda comprender el problema, debe comprender cómo funcionan las sesiones.

La forma más común de administrar sesiones es enviar al navegador una cookie con un valor aleatorio e impredecible cuando inician sesión, y asignarla a algunos datos en el servidor:

  1. Información de inicio de sesión de los POST del usuario
  2. El servidor valida la información de inicio de sesión, crea una cadena aleatoria 2c64279f045bcb64ea8cd4d576514545 , la asigna a algunos datos:

    2c64279f045bcb64ea8cd4d576514545: {userId: 123, username: "johndoe", otherdata: ...}

  3. El servidor le dice al navegador que almacene 2c64279f045bcb64ea8cd4d576514545 como una cookie que eventualmente caducará

  4. El navegador envía la cookie con cada solicitud al servidor, para que el servidor pueda ver quién realiza la solicitud.

¿Cómo funciona la caducidad de la sesión?

Dado que los datos de la cookie se utilizan como un valor de búsqueda en el servidor, simplemente la caducidad no es suficiente. Cualquiera podría copiar el valor y el servidor no tendría idea de que debería haber caducado. La caducidad de la sesión debe ocurrir en el lado del servidor. Cómo se hace esto depende del lenguaje y el marco que está utilizando. Personalmente no he usado .NET, pero esto puede ser relevante.

    
respondido por el AndrolGenhald 28.09.2018 - 17:57
fuente

Lea otras preguntas en las etiquetas