Vengo a plantear un desafío y a la vez contarles un problema que tengo en Flash. Espero que sea de ayuda y podamos lograr una solución juntos que seguro les ayudará a muchos. Pondré un ejemplo ficticio:
Imaginemos que hago un juego que consista en hacer click la mayor cantidad de veces en un botón en 30 segundos, luego la cantidad de clicks se envía a un servidor por medio de getURL (juego.php?clicks=200) o sendAndLoad (también a juego.php) y que forme un ranking con los mejores. Lo malo es que es muy fácil hacer trampa en este tipo de juegos en Flash, sería cosa de que un usuario busque la URL de destino (tanto descompilando un SWF o buscar en los Archivos temporales) e introducir manualmente la URL juego.php?clicks=10000000000000. He buscado varias salidas pero todos tienen sus puntos negros:
- Por medio de un ID único o un token: Que el Flash envíe, junto a los clicks, un ID que sea validado en PHP y así comprobar que la URL ha sido adquirida desde NUESTRO juego y no con trampa. Pero si el usuario tiene un descompilador de SWF sería cosa de que viera el código de fuente y podrá manipular el resultado.
- Usando REFERER en PHP: Indicarle a PHP que la variable debe provenir desde nuestro_juego.swf (en nuestro dominio) y no de otro lado. Lo malo es que Firefox no envía los datos de Referer desde Flash (pero Chrome e IE si lo hacen).
- Un ID aleatorio proveniente desde el servidor: Que antes de iniciar el juego, se cargue por XML un ID al Flash para que lo retorne junto al resultado y ahi validar que la variable no haya sido víctima de trampas. Pero la URL de aquel XML es fácilmente detectable desde los Archivos Temporales o con un Descompilador de SWF.
Muchas gracias por la ayuda!!!