Atténuer la falsification des meilleurs scores dans les jeux PHP Flash
Introduction :
Maintenir l'intégrité du jeu en ligne Les tableaux des meilleurs scores sont difficiles en raison des vulnérabilités inhérentes à Flash et PHP. Cet article explore les complexités de la prévention de la manipulation de partition et propose des stratégies efficaces pour atténuer ce problème.
Le problème :
Le code Flash fonctionne sur l'ordinateur de l'utilisateur, le rendant vulnérable à l'ingénierie inverse. et manipulations. Les utilisateurs peuvent modifier les variables et le comportement du programme, ce qui peut entraîner la falsification de scores élevés.
Tentatives de solutions de base :
Des méthodes simples telles que des appels de scores multiples, des sommes de contrôle et des séquences de Fibonacci ont été utilisé mais s'est finalement révélé inefficace contre des attaquants déterminés.
Avancé Solutions :
1. Validation basée sur les jetons :
Liez chaque sauvegarde des meilleurs scores à une instance de jeu unique en fournissant un jeton crypté au démarrage du jeu. Le serveur vérifie le jeton par rapport au score reçu, empêchant ainsi les attaques par relecture.
2. Clé de session et AES :
Générez une clé AES aléatoire de 128 bits cryptée avec une clé codée en dur dans le jeu Flash. Le meilleur score est ensuite crypté avec la clé de session et le hachage SHA1 du score.
3. Vérifications côté serveur :
Le script PHP vérifie la validité du jeton, déchiffre le meilleur score et vérifie son hachage SHA1. Si l'une ou l'autre des vérifications échoue, le score est rejeté.
Résolution de l'ingénierie inverse et de la manipulation de la mémoire :
1. Contre-mesures pour la décompilation :
Obscurisez le code AES et dispersez de faux cryptages de clé pour entraver la compréhension et le traçage.
2. Surveillance du temps d'exécution côté serveur :
Suivez les durées de jeu, les scores de battement de cœur et les états du jeu. Filtrez les comportements suspects, tels que les jeux de faible durée ou la croissance anormale des scores.
3. Désactivation du compte :
Désactivez les comptes associés aux utilisateurs qui présentent des signes évidents de falsification.
Conclusion :
Empêcher complètement la manipulation des meilleurs scores est impossible. Cependant, en mettant en œuvre des mesures de sécurité à plusieurs niveaux et en tirant parti de la surveillance côté serveur, il est possible de dissuader et d'atténuer le problème. N'oubliez pas de vous concentrer sur le fait de rendre l'attaque plus coûteuse que d'utiliser des méthodes légitimes, afin de protéger en fin de compte l'intégrité de votre jeu.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!