¿Cómo evita Neopets hacer trampa en sus juegos Flash?

Puedes hacerlo difícil, pero no puedes hacerlo imposible. Independientemente de la tecnología que utilice, si un usuario tiene una aplicación que se ejecuta en el lado del cliente, podrá observar (e imitar) la entrada y salida, y podrá ver al menos el código compilado de su aplicación.

Una forma de hacer esto difícil es cifrar la comunicación entre la aplicación y su servidor. Aunque su clave pública podría ser encontrada por un pirata informático dedicado y utilizada para cifrar sus propios datos de puntaje, esto detendrá el 99% de las trampas que de otro modo podrían suceder. (También puede hacer que la clave pública sea difícil de armar, en lugar de almacenarla como una cadena, almacénela como códigos de caracteres individuales que se concatenan cuando sea necesario; eso evitará que aparezca como texto sin formato en su fuente).

Otra forma más sutil es agregar una suma de verificación a los puntajes. Un ejemplo trivial es el método de “suma de dígitos”: un puntaje de “13,000” tiene una suma de verificación de “1 + 3 + 0 + 0 + 0” = 4. Si intenté decir que mi puntaje fue de 14,000, pero no lo hice No sé acerca de la suma de verificación o cómo se calcula, sabrá que la puntuación no es válida (y que estaba tratando de hacer trampa).