Documentation Flash CS3 |
|||
| Programmation avec ActionScript 3.0 > La sécurité dans Flash Player > Chargement des données | |||
Les fichiers SWF permettent d'échanger des données entre un serveur et ActionScript. Le chargement de données est une opération différente du chargement de média car les informations chargées apparaissent directement dans ActionScript et non affichées sous forme de média. En règle générale, les fichiers SWF peuvent charger des données à partir de leur propre domaine. En revanche, des fichiers de régulation interdomaine sont normalement nécessaires pour charger des données issues d'autres domaines.
Vous pouvez charger des données telles que des fichiers XML ou texte. Les méthodes load() des classes URLLoader et URLStream sont régies par les autorisations d'un fichier de régulation inter-domaines.
Si vous utilisez la méthode load() pour charger le contenu d'un autre domaine que celui du fichier SWF qui appelle la méthode, Flash Player recherche le fichier de régulation interdomaine sur le serveur des actifs chargés. S'il en existe un qui autorise l'accès au domaine du fichier SWF à l'origine du chargement, vous pouvez charger les données.
L'accès interdomaine aux connexions socket et XML socket sont désactivées par défaut. L'accès aux connexions socket dans le même domaine que le fichier SWF sur les numéros de port inférieur à 1024 est également désactivé par défaut. Vous pouvez autoriser l'accès à ces ports en servant un fichier de régulation inter-domaines à partir de l'un des emplacements suivants :
Si vous servez le fichier de régulation interdomaine à partir du même port que la connexion socket principale, ou d'un port différent, énumérez les ports autorisés à l'aide de l'attribut to-ports du fichier de régulation interdomaine, comme le montre l'exemple suivant :
<?xml version="1.0"?> <!DOCTYPE cross-domain-policy
SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> <!-- Policy file for xmlsocket://socks.mysite.com --> <cross-domain-policy> <allow-access-from domain="*" to-ports="507" /> <allow-access-from domain="*.example.com" to-ports="507,516" /> <allow-access-from domain="*.example.org" to-ports="516-523" /> <allow-access-from domain="adobe.com" to-ports="507,516-523" /> <allow-access-from domain="192.0.34.166" to-ports="*" /> </cross-domain-policy>
Pour récupérer un fichier de régulation socket à partir du même port que la connexion socket principale, il suffit d'appeler la méthode Socket.connect() ou XMLSocket.connect(). De plus, si le domaine spécifié est différent du domaine du fichier SWF appelant, Flash Player tente automatiquement de récupérer un fichier de régulation à partir du même port que celui de la connexion principale. Pour récupérer un fichier de régulation socket à partir d'un port différent sur le même serveur que la connexion principale, appelez la méthode Security.loadPolicyFile() avec la syntaxe spéciale "xmlsocket", comme suit :
Security.loadPolicyFile("xmlsocket://server.com:2525");
Appelez la méthode Security.loadPolicyFile() avant la méthode Socket.connect() ou XMLSocket.connect(). Flash Player peut alors attendre le retour de votre requête de fichier de régulation avant de décider ou non d'autoriser la connexion principale.
Si vous mettez en œuvre un serveur socket et que vous devez fournir un fichier de régulation socket, vous devez choisir de fournir le fichier de régulation sur le même port que celui qui accepte les connexions principales ou d'utiliser un autre port. Dans les deux cas, votre serveur doit attendre la première transmission du client avant de décider s'il envoie le fichier de régulation ou s'il définit une connexion principale. Lorsque Flash Player requiert un fichier de régulation, il transmet toujours la chaîne suivante dès que la connexion est établie :
<policy-file-request/>
Une fois que le serveur a reçu cette chaîne, il peut transmettre le fichier de régulation. N'envisagez pas d'utiliser la même connexion pour la requête de fichier de régulation et pour la connexion principale. Vous devez fermer la connexion une fois le fichier de régulation transmis. A défaut, Flash Player ferme la connexion du fichier de régulation, puis établit une autre connexion pour la connexion principale.
Pour plus d'informations, voir Fichiers de régulation socket.
L'envoi de données s'effectue lorsque le code ActionScript issu d'un fichier SWF envoie des données à un serveur ou une ressource. L'envoi de données est toujours autorisé pour les fichiers SWF de domaines réseau. Un fichier SWF local peut envoyer des données à des adresses réseau uniquement si elles se trouvent dans le sandbox local approuvé ou local avec réseau. Pour plus d'informations, voir Sandboxes locaux.
Vous pouvez utiliser la fonction flash.net.sendToURL() pour envoyer des données à une URL. D'autres méthodes permettent d'envoyer des requêtes aux URL. Il s'agit notamment des méthodes de chargement, telles que Loader.load() et Sound.load(), et des méthodes de chargement de données, telles que URLLoader.load() and URLStream.load().
La méthode FileReference.upload() lance le chargement d'un fichier sélectionné par l'utilisateur vers un serveur distant. Vous devez appeler la méthode FileReference.browse() ou FileReferenceList.browse() avant la méthode FileReference.upload().
L'appel de la méthode FileReference.download() ouvre une boîte de dialogue dans laquelle l'utilisateur peut télécharger un fichier à partir d'un serveur distant.
|
REMARQUE |
|
Si votre serveur requiert une authentification utilisateur, seuls les fichiers SWF s'exécutant dans un navigateur (c'est-à-dire utilisant le module externe du navigateur ou le contrôle ActiveX) peuvent fournir une boîte de dialogue pour demander à l'utilisateur un nom et un mot de passe d'authentification, et uniquement pour les téléchargements. Flash Player ne permet pas de charger des fichiers sur un serveur qui requiert une authentification utilisateur. |
Les chargements et téléchargements ne sont autorisés que si le fichier SWF appelant appartient au sandbox local avec système de fichiers.
Par défaut, un fichier SWF ne peut pas lancer un chargement ou un téléchargement avec un serveur autre que le sien. Il peut le faire si le serveur en question fournit un fichier de régulation inter-domaines accordant un accès au domaine du fichier SWF appelant.
Flash CS3
M'envoyer un message électronique lorsque des commentaires sont ajoutés à cette page | Rapport de commentaire
Page en cours: http://livedocs.adobe.com/flash/9.0_fr/main/00000356.html