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

156
Vistas
Cómo evitar que el usuario explote el temporizador en Javascript

Estoy tratando de hacer una aplicación de prueba usando Firebase como mi backend y JavaScript modular como secuencia de comandos del lado del cliente y encontré un problema recientemente.
Así que quería hacer un temporizador que muestre al usuario cuánto tiempo queda antes de que finalice la prueba y se envíe automáticamente. Pero, ¿cómo lo implemento de tal manera que el usuario final no use el depurador u otras herramientas para manipular este temporizador? También en las reglas de Firebase, me he asegurado de que el acceso de escritura esté deshabilitado después de que finalice el "intervalo de tiempo" para intentarlo.

Por ejemplo: digamos que la prueba 1 está activa de 1:00 p. m. a 12:00 p. m. (intervalo de tiempo) y puede intentarlo durante 60 minutos en cualquier momento en este intervalo de tiempo. ¿Cómo puedo asegurarme de que el cliente intente realizar la prueba solo durante 60 minutos y no le guste si comienza desde la 1:00 y manipula el tiempo para escribir hasta las 12:00 p. m.?

¿Cómo puedo implementar esto? ¿Necesito soporte del lado del servidor como funciones en la nube? No quería usarlos hasta ahora, ya que enviar una solicitud cada 1 segundo o 5 segundos consume una gran cantidad de recursos de datos cuando esta aplicación se adapta a más personas. (También que lo estoy construyendo en Spark Plan)

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Debe verificar este lado del servidor. No puede evitar de manera eficiente que alguien realice la edición del lado del cliente.

  1. Haga que el cliente envíe una solicitud al servidor cuando comience la prueba y guarde la hora del servidor como startTime .
  2. Haga que el cliente envíe otra solicitud cuando finalice la prueba y guarde la hora del servidor como endTime .
  3. Asegúrese endTime - startTime <= 60 mins
  4. Prima:
  • Haga que el cliente envíe solicitudes periódicamente para guardar el progreso del usuario y hacer cumplir la sincronización de tiempo. No desea que el usuario falle la prueba o pierda su progreso porque el navegador se bloqueó.
about 4 years ago · Juan Pablo Isaza 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