Como dijo Byte56: "nunca confíes en el cliente", pero:
Nunca confiar en el cliente tiene un precio:
tener todos los juegos que se juegan en el servidor aumentará mucho el costo de su infraestructura.
Suponiendo que la mayoría de los jugadores no hagan trampa
y que la puntuación más alta se asiente después de un tiempo y deje de cambiar mucho
Hay un camino intermedio.
Grabar los juegos (en el cliente).
(Dependiendo del tipo de juego que podría ser súper fácil (por ejemplo, ajedrez) o un poco complicado (por ejemplo, un FPS multijugador),
pero siempre es factible).
Cuando un jugador termina un juego, simplemente envíe la puntuación.
Si el puntaje está dentro de un cierto rango en la parte superior (por ejemplo, el 1% superior o los 5 principales),
solicite los datos grabados del jugador
y reproduzca ese juego en el servidor.
Si los puntajes coinciden, acepte el puntaje.
De esta manera, no necesita recursos adicionales del lado del servidor para la mayoría de las jugadas,
pero puede garantizar que las puntuaciones más altas sean válidas.