Actualmente estoy creando un juego de aplicación multijugador en Android, y la lógica del lado del servidor se implementa mediante las Funciones de la Nube, que es un entorno sin servidor. La lógica de la aplicación es la siguiente: dos usuarios reciben una pregunta (es decir, la misma) y ambos intentan responderla. Cuando un usuario responde la pregunta, verificamos si su respuesta es correcta o no en el lado del servidor. Aquí es donde estoy confundido. Supongamos que la respuesta del usuario es incorrecta. El servidor llegará a esta conclusión y enviará datos al cliente para notificar al usuario que su respuesta es incorrecta. Supongamos que el código de cliente es el siguiente:
boolean is_correct_answer = getServerResponse();
En nuestro ejemplo, el getServerResponse()
devolverá false en este caso (es decir, ya que la respuesta del usuario fue incorrecta). Por lo que entiendo, el código del lado del cliente puede ser manipulado, por lo que un hacker puede establecer el valor de is_correct_answer
en verdadero. Por lo tanto, la validación del lado del servidor no fue útil en absoluto en nuestro ejemplo. Entonces, mi pregunta es: ¿cuál es la forma correcta de validar las respuestas de los usuarios y luego notificarles si su respuesta fue correcta o no?