Quiero saber si este es un esquema adecuado para la administración de sesiones. Una vez que el usuario se ha autenticado con user / pass, el servidor devuelve session = MD5(SECRET + user_id)
(junto con otros campos) donde SECRET
es una cadena aleatoria (por ejemplo, 256 bits).
Luego, el cliente simplemente envía el hash session
recibido con cada solicitud, y el servidor lo valida al verificar que MD5(SECRET + user_id)
es igual al hash recibido.
¿Cuáles son los riesgos potenciales aquí? Supongo que si el usuario puede enviar un user_id
vacío, entonces ella está un paso más cerca de SECRET
, pero esto es fácilmente evitable. Además, SECRET
podría cambiar cada semana aproximadamente.
(Nota: estoy usando Node como el backend para una aplicación móvil, por lo que no hay navegador ni cookies).