¿Por qué los nombres de usuarios generalmente no se almacenan en las cookies de sesión y se les proporcionan ID de sesión?

3

Últimamente he estado leyendo un poco sobre seguridad y me he preguntado esto. ¿Por qué las ID de sesión no son esencialmente contraseñas temporales vinculadas al nombre de usuario? Ambos se envían desde el cliente y el servidor los verifica con cada solicitud.

Por lo que puedo ver, sería más difícil secuestrar por fuerza bruta (aunque tal vez no sea más que agregar más bits al ID de sesión), ayudar a prevenir la fijación de la sesión y mejorar el registro para descubrir cómo / por qué es el sitio siendo atacado.

Aunque, por lo que puedo ver, no es una práctica estándar, así que siento que debo faltar algo.

    
pregunta Matthew 02.07.2016 - 22:11
fuente

1 respuesta

1

Un ID de sesión es una contraseña temporal que generalmente está vinculada a un nombre de usuario. Las sesiones anónimas también son herramientas útiles en algunos casos.

El almacenamiento del nombre de usuario en el cliente no tiene ningún propósito útil. Si el servidor confiaba en esta información, cualquiera podría obtener el control cambiando su cookie de nombre de usuario a 'admin' o root '. Por lo tanto, la identificación de la sesión identifica al usuario y demuestra el estado de autenticación, pero solo a través de una búsqueda indirecta almacenada en el servidor.

Además de las sesiones anónimas, también vale la pena señalar que los datos de la sesión pueden ser más que solo un nombre de usuario y un estado de autenticación; también pueden contener información de autorización (por ejemplo, roles) preferencias del usuario e información (dentro de los límites) transaccional. El almacenamiento de información de forma segura no se realiza fácilmente en un sustrato que no está protegido contra la manipulación indebida.

No entiendo cómo crees que esto hace que el secuestro / fijación de sesión sea más difícil; no ha explicado por qué y tiene algunas ideas erróneas acerca de cómo funcionan las sesiones.

Ciertamente, si los datos de las cookies son confiables, sería fácil asociar la verdadera identidad de un atacante con las solicitudes http, sin embargo, los datos NO son confiables.

Hay otras formas de asignar identidades a las solicitudes en el servidor web: la mayoría de las implementaciones de SSO permiten poblar la noción de los servidores web del usuario autenticado. La información se puede enviar desde la aplicación (por ejemplo, mod_auth_memcookie) o indirectamente a través de otros vectores como supercookies y huellas digitales del navegador.

    
respondido por el symcbean 03.07.2016 - 00:18
fuente

Lea otras preguntas en las etiquetas