No hay manera de hacer esto de una manera completamente segura, ya que no puede confiar en el cliente . El servidor nunca puede saber si el usuario realmente vio el video o no. Yo recomendaría no tratar de ofuscar su código o complicarlo. Al final, un usuario determinado siempre podrá hacer trampa de todos modos, y usted está haciendo un desastre de su código sin ningún beneficio. Después de todo, es posible que el usuario ni siquiera esté frente a la computadora mientras se reproduce el video.
Dicho esto, puedes hacer que sea más difícil hacer trampa. Aquí hay algunas sugerencias:
- No enviar
n
. En su lugar envía un código único al video visto. Si bien el usuario podría simplemente cambiar ese código, al menos no podría establecerlo en un número ridículamente grande y ganar miles de millones de puntos.
- En el servidor, guarde el tiempo que el usuario solicita la página con un video. Cuando el servidor recibe el mensaje de "video visto", verifique que el tiempo transcurrido no sea más corto que la duración del video. Si es así, has encontrado un tramposo.
- Si transmite el video, verifique que todo el video se haya descargado antes de otorgar puntos. Una vez más, esta es una verificación que debe hacer en el servidor.
- Finalmente, si esto es para algún tipo de propósito educativo, haga una prueba simple al final donde el usuario deba demostrar una comprensión básica de los conceptos que se discutieron en el video.