Saltar al contenido

¿Dónde y cómo se almacenan los datos en una sesión?

Solución:

Esto depende del servidor web utilizado. Si tomamos PHP en Unix como ejemplo, puede almacenar la sesión en el sistema de archivos en la carpeta / tmp. Aquí crea un archivo con el nombre de la ID de sesión del usuario con el prefijo sess_ (Ejemplo: /tmp/sess_9gk8f055hd61qll6a8pjpje2n2). El contenido de la sesión se puede encriptar opcionalmente antes de ser colocado en el navegador. Para las sesiones de Apache (no necesariamente PHP) puede usar el módulo mod_session_crypto (Lea más aquí).

El propietario de la sesión no puede cambiar las variables de la sesión como le apetezca a menos que la aplicación le permita hacerlo. La lógica de la aplicación debe proporcionar medios para cambiar la sesión para que el usuario cambie las variables.

El objeto de sesión nunca se transmite al cliente y solo se pasa al cliente una referencia a la sesión (por ejemplo, PHPSESSID). El ID de sesión debe tener una alta entropía y un mínimo de 16 bytes de longitud para que sea muy difícil de adivinar. Consulte OWASP Top 10: autenticación rota y administración de sesiones para obtener más información al respecto. Consulte también esta hoja de trucos de OWASP para obtener información específica sobre cómo proteger las sesiones.

Ataques contra el almacenamiento de sesiones:

Si existe una falla como, por ejemplo, LFI (inclusión de archivos locales), es posible que un atacante lea sus propios objetos de sesión y los de otros usuarios al incluir el archivo en el sistema de archivos. Por ejemplo, si el siguiente ejemplo funcionó, posiblemente podría leer mis propios datos de sesión:

http://<victim>/?page=../../../../../../../../tmp/sess_<my sessionid>
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *