2008-12-02 11 views
1

Je développe un jeu codé en Flash AS3 et j'ai besoin de lire/écrire des informations sur un serveur SQL. Actuellement, à des fins de test, j'utilise ASQL qui est très simple et robuste, mais nécessite une connexion directe de la machine client au serveur SQL (port 3306 ouvert et permettant le login générique de n'importe où en utilisant un mot de passe) , le format .swf lui-même n'est pas crypté et tous les décompilateurs vous permettront d'extraire le code AS3, ce qui signifie un mot de passe stocké dans le code.Communication entre AS3 et le serveur MySQL

J'ai arrondi quelques options mais ils manquent tous les mesures de sécurité:

  1. code AS3 envoyant un req POST à ​​une page PHP qui se connecte au serveur MySQL
  2. Utilisez amfphp, mais le protocole AMF est toujours capable de renifler
  3. Conserver la méthode actuelle et forcer les utilisateurs à ouvrir le port sortant 3306, ce qui peut perturber les clients.

Aide/conseils/discussion serait très appréciée.

Répondre

0

En fonction du nombre de commandes nécessaires, je pense que vous devriez choisir l'option 1 (avec seulement un ou quelques commandes) ou l'option 2 (si vous en avez d'envoyer des commandes complexes et plus). N'ouvrez pas votre base de données sur Internet.

Quel est le problème que vous essayez de résoudre/sécuriser? Si toute la logique de votre application (jeu) est chez le client, vous ne pouvez pas empêcher les gens de truquer les résultats. Le client ne doit jamais faire confiance et aucune sécurisation de la ligne (https ou tout autre cryptage de la communication) ne l'aidera - cela empêchera les autres d'écouter. Si vous essayez de sécuriser l'affichage des scores élevés ou l'état du jeu - à ma connaissance vous pouvez le rendre difficile de les truquer, mais vous ne pouvez pas le rendre impossible, sauf si vous déplacez au moins une certaine logique de jeu au serveur.

1

Vous pouvez utiliser HTTP (S) avec authentification avec, par ex. PHP. Ne faites pas du script un wrapper à la connexion SQL, car cela ruinerait le point du script (essentiellement); avoir des commandes personnalisées en tant que protocole (par exemple ajouter/mettre à jour des scores élevés).

Questions connexes