2009-08-05 8 views

Répondre

4

Dans beaucoup de cas cela ne fonctionnera pas à cause du modèle de sécurité associé au fichier crossdomain.xml.

http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html

Dites par exemple, j'ai une application flexible qui a un appel de service et la connexion à ma base de données back-end (peut-être PHP et MySQL). Si je ne l'active pas explicitement dans le fichier de règles crossdomain.xml, l'application ne pourra pas communiquer avec mon serveur à moins que le fichier swf ne soit directement chargé depuis mon domaine. Si l'application était locale, elle ressemblerait à mon serveur comme localhost essayait d'accéder à mon backend via l'application flexible. Donc, par défaut, cela ne fonctionnerait pas à moins qu'une règle explicite ait été mise en place dans le fichier crossdomain.xml pour autoriser l'accès depuis localhost. De même, quelqu'un ne peut pas simplement mettre le swf sur un serveur différent et essayer d'accéder à partir de mon serveur à moins que j'ajoute ce serveur distant à la politique crossdomain.xml.

Revenons à votre question. Évidemment, ce truc crossdomain.xml ne s'applique pas vraiment si votre application flexible est vraiment simple et n'essaie pas d'effectuer des appels de service sur un serveur. Par exemple, si vous avez un jeu simple qui ne fait que charger et jouer sans appels de serveur supplémentaires dans le jeu flexible.

Si vous vouliez protéger votre application, vous pourriez avoir un processus de base de "numéro de téléphone" au cours de la séquence de démarrage qui rend un appel de serveur très simple à votre site Web. Il ne doit pas être quelque chose de super compliqué, il suffit d'un appel de service aller-retour dans le démarrage de votre application. Vérifiez peut-être une simple clé ou chaîne stockée dans une variable du côté PHP, et ne laissez pas l'application flexible s'exécuter à moins que cette clé ne soit valide. Vous pouvez coder en dur la clé attendue dans l'actioncript. Ou peut-être avoir un enregistreur de base qui permet de suivre combien de fois l'application est lancée et stocker le compte dans une base de données ou quelque chose. L'essentiel est de ne pas laisser l'application se lancer complètement jusqu'à ce que cette requête au serveur ait retourné un résultat valide.

Si vous avez cela en place, les politiques crossdomain.xml entreront en vigueur et si quelqu'un télécharge votre fichier SWF, cela ne devrait pas fonctionner car il essaiera de passer un appel depuis localhost vers votre serveur. Ou s'ils volent votre application et l'hébergent sur leur site, cela ne devrait pas fonctionner non plus.

0

Vérifiez aussi flash.System.Capabilities.playerType sur LiveDocs.

2

La solution la plus simple il probablement pour vérifier la valeur de

Application.application.loaderInfo.url 

au démarrage de l'application (par exemple en cas applicationComplete) et correspondent avec votre domaine de site Web.

Questions connexes