Estoy desarrollando una prueba con la que puedes ganar algunos premios geniales. Por lo tanto, me temo que alguien podría intentar piratearlo / manipularlo.
Todos los participantes deben iniciar sesión y el sitio web toma 15 preguntas de la base de datos, les da a Javascript, que pinta el cuestionario en ese momento. Cuando un usuario termina todas las preguntas o responde una falsa, la prueba realiza una llamada de Ajax al backend e inserta los puntos en la base de datos.
Para decidir qué respuesta (siempre hay 4) es correcta, la prueba debe saber cuál es la correcta. Estos datos se proporcionan como una cadena codificada en Base64 y luego se descodifican en Javascript.
Pregunta 1: ¿Es esto seguro? ¿Hay mejores maneras?
Siempre que se inicia la prueba, guardo el ID de la prueba en la base de datos. Cuando se realiza la llamada Ajax final, verifico esa identificación, verifico si las respuestas dadas son las asociadas con el cuestionario (y el orden de las mismas), verifico un token (hay uno en la sesión y otro en Javascript , ambos generados en base a la prueba y algunos valores de sal, se generan usando md5, sha1 y substr en PHP)
Pregunta 2: ¿Esto es seguro? ¿Hay mejores maneras? ¿Me perdí algo?