Boton atras del navegador
Hola Jose:
Para lo que comentas, precisamente te puede servir el uso de tokens. Ignoro que lenguaje estás usando en tu aplicación, así que intentaré explicarme en los términos más generales posibles:
- Cuando un usuario entra por primera vez al examen. ¿Ha hecho este usuario el examen ya?
Sí. Se avisa al usuario que ya ha hecho el examen y no vuelve a hacerlo.
No. Se genera un token, que para el caso, es un valor único y aleatorio, que se guarda en una variable de sesión.
¿Existe un token anterior?
Sí. Se compara el token anterior con el que se acaba de generar. ¿Son diferentes?
Sí. El usuario ha salido (dándole al botón atrás, por ejemplo). No se le deja hacer de nuevo el examen.
No existe token anterior. El usuario, o bien acaba de entrar a hacer el examen por primera vez, o bien se ha perdido la sesión porque el usuario cerró el navegador por ejemplo. Para evitarlo, se puede enviar una cookie al ordenador del usuario (cliente), que tenga cierta duración mayor a una sesión, por lo que... ¿existe una cookie anterior?
No. El usuario muy probablemente acaba de entrar al examen por primera vez. No es totalmente fiable, pero... La otra única forma, totalmente fiable que se me ocurre, es que el usuario se tenga que logar. De hecho, esta sería la manera ideal.
Espero que te oriente.
Un saludo,
Un saludo,
José Manuel
=============================
http://www.orbisapientia.com
http://josema-liferay.blogspot.com.es/