¿Reutilizar la misma ID de sesión es necesariamente mala?

3

La pregunta está relacionada con la administración de ID de sesión en una aplicación web basada en php en particular.

La aplicación web utiliza el mismo ID de sesión para cada sesión para un usuario fijo. Entonces, después de cerrar la sesión de la aplicación, la próxima vez que el usuario inicie sesión, la misma ID de sesión se liberará como una cookie. Sin embargo, mientras el usuario no ha iniciado sesión, la aplicación no permite el uso de la cookie (reenviar las solicitudes HTTP con la misma cookie se reenvía a la página de inicio de sesión).

¿Se considera esto una mala práctica de seguridad? ¿Qué tal si se utiliza la misma ID de sesión para todos usuarios?

    
pregunta wu7 13.08.2013 - 01:46
fuente

2 respuestas

9

Rodar su propio sistema de gestión de sesiones es extremadamente peligroso, porque muchas cosas pueden salir mal con una sesión . En PHP solo debes usar session_start() y el $_SESSION superglobal.

Al usar el mismo Id. de sesión cada vez que el usuario inicia sesión, no tiene sentido cambiar su contraseña. Hay un token que siempre permite el acceso. Un atacante podría comprender esta sesión con XSS, o debido a una Seguridad de Capa de Transporte Insuficiente, y luego siempre tendrá acceso al sistema.

El uso de la misma sesión para cada usuario anula el propósito, si necesita un estado global, use una base de datos

    
respondido por el rook 13.08.2013 - 02:18
fuente
7

De acuerdo con Rook, sin embargo, él / ella no señala por qué su propuesta tiene fallas intrínsecas cuando invalida el estado autenticado de la sesión.

Esto crea al menos una vulnerabilidad específica: el ID de sesión ahora es predecible. Considere: Alice usa el sistema del cliente A: después de cerrar la sesión, es posible que haya marcado la sesión como no validada, pero el token de la sesión aún puede recuperarse de este cliente. Chuck aparece y extrae el ID de sesión del cliente A. No puede acceder al sistema porque la sesión está marcada como no autenticada. Pero luego Alice vuelve a iniciar sesión desde el cliente B: la sesión ya no está bloqueada y Chuck tiene acceso gratuito.

  

¿Qué tal si se utiliza la misma ID de sesión para todos los usuarios?

¡¡¡WTF ??? !!!!

Entonces no es un ID de sesión.

    
respondido por el symcbean 13.08.2013 - 17:02
fuente

Lea otras preguntas en las etiquetas