Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

158
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!