Estoy trabajando en una aplicación web grande que se ejecuta completamente dentro de una sola página web. Por diversas razones, no queremos utilizar cookies en esta aplicación web, pero es necesario hacer un seguimiento de si un usuario ha iniciado sesión o no. Todas nuestras conexiones son sobre SSL. Aquí es cómo planeamos realizar un seguimiento de las sesiones:
Con cada respuesta enviada por el servidor, envía un token de sesión.
El token de sesión es una cadena cifrada que contiene lo siguiente:
- El ID de usuario
- A SessionID
- Una sal (generada aleatoriamente cada vez)
- Una marca de tiempo actual
- Una marca de tiempo de caducidad, exactamente media hora después de la marca de tiempo actual
Cuando el cliente envía una solicitud, también debe enviar este token de sesión. El token se descifra y las marcas de tiempo se verifican para ver si están separadas por media hora, y que la hora actual está entre las dos marcas de tiempo. Si es así, la solicitud se procesa, utilizando el ID de usuario para identificar quién realizó la solicitud. De lo contrario, la solicitud no se procesa y se envía una respuesta que indica al cliente que cierre la sesión del usuario.
¿Este sistema nos dejará horriblemente vulnerables a las personas que se identifican falsamente como usuarios? ¿Ves algún otro problema con esto?