Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

153
Vistas
Almacenamiento del estado del lado del cliente desde JavaScript

He escrito un juego en JavaScript que se ejecuta completamente del lado del cliente. En el juego, el jugador resuelve acertijos para avanzar al siguiente nivel del juego. Guardo el nivel actual del juego en una cookie, para que puedan volver a cargar la página y continuar desde el último nivel que alcanzaron.

Desafortunadamente, el usuario puede editar la cookie y así ir directamente a cualquier nivel de juego. Quiero prevenir eso. ¿Cuáles son mis opciones?

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Cifre la cookie con JSON Web Token (JWT). Primero firme la cookie con una clave secreta y guárdela en el navegador del usuario y en el juego descifre con su misma clave secreta y obtenga los valores. Si el usuario edita la cookie, entonces no coincidirá con su clave secreta y si el secreto no coincide, puede hacer que vuelva a jugar desde el nivel 1 como castigo.

about 4 years ago · Santiago Trujillo Denunciar

0

Simplemente pueden editar su código JS y omitir cualquier verificación que agregue allí. Así es como lo haría, siempre que cada nivel tenga solo 1 solución.

En primer lugar, guarde cada nivel en formato json. Luego, calcule el hashsum de cada nivel, cuando esté en el estado resuelto. Finalmente, codifique cada siguiente nivel con un hashsum de uno anterior. Y almacena el hashsum en una cookie.

Así es como funcionaría:

  1. El usuario resuelve lvl1
  2. La aplicación convierte lvl1 a json y calcula su hashsum
  3. La aplicación lo usa para descifrar lvl2

En caso de que alguien cambie el número de nivel, la decodificación seguirá fallando. Y podrá determinar el nivel "correcto" tratando de decodificarlos todos 1 por 1.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda