Packageflash.system
Classepublic final class Security
HéritageSecurity Inheritance Object

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

La classe Security permet de spécifier la façon dont les fichiers SWF peuvent communiquer entre eux dans différents domaines.

Consulter les exemples

Voir aussi

La sécurité dans Flash Player


Propriétés publiques
 PropriétéDéfini par
 Inheritedconstructor : Object
Référence à l'objet de classe ou à la fonction constructeur d'une occurrence donnée d'un objet.
Object
  exactSettings : Boolean
[static] Détermine la façon dont Flash Player sélectionne le domaine à utiliser pour certains paramètres de Flash Player, ce qui couvre les autorisations relatives à la caméra et au microphone, les quotas de stockage et le stockage d'objets persistants partagés.
Security
 Inheritedprototype : Object
[static] Référence à l’objet prototype d’un objet de classe ou fonction.
Object
  sandboxType : String
[static] [lecture-seule] Indique le type de sandbox de sécurité dans lequel fonctionne le fichier SWF appelant.
Security
Méthodes publiques
 MéthodeDéfini par
  
allowDomain(... domains):void
[static] Permet aux fichiers SWF et HTML figurant dans les domaines identifiés d'accéder aux objets et aux variables du fichier SWF qui contient l'appel allowDomain().
Security
  
[static] Permet aux fichiers SWF et HTML appartenant aux domaines identifiés d'accéder aux objets et variables du fichier SWF effectuant l'appel, hébergé à l'aide du protocole HTTPS.
Security
 Inherited
Indique si la propriété spécifiée d'un objet est définie.
Object
 Inherited
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l'objet spécifié en tant que paramètre.
Object
  
[static] Charge un fichier de régulation interdomaines à partir d'un emplacement spécifié par le paramètre url.
Security
 Inherited
Indique si la propriété spécifiée existe et est énumérable.
Object
 Inherited
Définit la disponibilité d'une propriété dynamique pour les opérations en boucle.
Object
  
showSettings(panel:String = "default"):void
[static] Affiche le panneau Paramètres de sécurité de Flash Player.
Security
 Inherited
Renvoie la représentation sous forme de chaîne de l'objet spécifié.
Object
 Inherited
Renvoie la valeur primitive de l'objet spécifié.
Object
Constantes publiques
 ConstanteDéfini par
  LOCAL_TRUSTED : String = "localTrusted"
[static] Ce fichier SWF est un fichier local qui a reçu la confiance de l'utilisateur en utilisant soit le gestionnaire de paramètres, soit un fichier de configuration FlashPlayerTrust.
Security
  LOCAL_WITH_FILE : String = "localWithFile"
[static] Le fichier SWF est un fichier local qui n'a pas été approuvé par l'utilisateur, et n'a pas été publié avec la désignation de mise en réseau.
Security
  LOCAL_WITH_NETWORK : String = "localWithNetwork"
[static] Le fichier SWF est un fichier local qui n'a pas été approuvé par l'utilisateur, et a été publié avec la désignation de mise en réseau.
Security
  REMOTE : String = "remote"
[static] Ce fichier SWF provient d'une URL et fonctionne selon les règles basées sur le domaine du sandbox.
Security
Détails des propriétés
exactSettingspropriété
exactSettings:Boolean  [lecture-écriture]

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Détermine la façon dont Flash Player sélectionne le domaine à utiliser pour certains paramètres de Flash Player, ce qui couvre les autorisations relatives à la caméra et au microphone, les quotas de stockage et le stockage d'objets persistants partagés. Vous pouvez définir exactSettings sur false pour que le fichier SWF reprenne les paramètres de Flash Player 6.

Dans Flash Player 6, le domaine utilisé pour ces paramètres de lecteur était basé sur la partie finale du domaine du fichier SWF. Lorsque le domaine d'un fichier SWF inclut plus de deux segments, tels que www.exemple.com, le premier segment du domaine (« www ») est supprimé et la partie restante du domaine est utilisée : exemple.com. Ainsi, dans Flash Player 6, www.exemple.com et magasin.exemple.com ont en commun le domaine « example.com » pour ces paramètres. de même, www.exemple.co.fr et magasin.exemple.co.fr ont tous les deux recours au domaine exemple.co.fr pour ces paramètres. A compter de Flash Player 7, les paramètres du lecteur sont choisis par défaut en fonction d'un domaine exact de fichier SWF. Par exemple, le fichier SWF de www.exemple.com applique les paramètres du lecteur pour www.exemple.com, et le fichier SWF de magasin.exemple.com utiliserait des paramètres différents pour magasin.exemple.com.

Lorsque Security.exactSettings est défini sur true, Flash Player a recours à des domaines exacts pour les paramètres du lecteur. Lorsqu'il est défini sur false, Flash Player applique les paramètres de domaine de Flash Player 6. La valeur par défaut de exactSettings est false. Si vous modifiez la valeur par défaut de exactSettings, vous devez le faire avant que tout événement impliquant la sélection de paramètres du lecteur se produise, tel que l'utilisation d'une caméra ou d'un microphone, ou l'extraction d'un objet partagé persistant.

Si vous avez déjà publié un fichier SWF de version 6 et créé des objets persistants à partir de ce dernier, et si vous devez extraire ces objets partagés persistants à partir de ce fichier SWF après l'avoir porté vers la version 7 ou plus récente, ou à partir d'un autre fichier SWF de version 7 ou plus récente, vous devez définir Security.exactSettings sur false avant d'appeler SharedObject.getLocal().


Implémentation
    public static function get exactSettings():Boolean
    public function set exactSettings(value:Boolean):void

Lance
SecurityError — Flash Player a déjà utilisé la valeur de exactSettings au moins une fois pour déterminer les paramètres du lecteur.

Voir aussi

sandboxTypepropriété 
sandboxType:String  [lecture-seule]

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Indique le type de sandbox de sécurité dans lequel fonctionne le fichier SWF appelant.

Security.sandboxType a l'une des valeurs suivantes :

Tout fichier SWF, quelle que soit sa version, peut utiliser cette propriété. Cette dernière est uniquement prise en charge à partir de Flash Player 8. Par conséquent, vous pouvez examiner cette propriété, par exemple, à l'aide d'un fichier SWF de version 7 lu par Flash Player 8. Cette prise en charge de toutes les versions signifie que si vous publiez une page pour une version de Flash antérieure à 8, vous ne pouvez pas déterminer à l'avance si cette propriété sera prise en charge lors de la lecture. Par conséquent, dans un fichier SWF de version 7 ou plus ancienne, cette propriété a la valeur undefined. Cette situation ne se produit que si la version du lecteur (indiquée par flash.system.Capabilities.version) est antérieure à 8. Dans ce cas, vous pouvez déterminer le type de sandbox selon que le fichier SWF est local ou non. S'il s'agit d'un fichier local, Flash Player classe le fichier SWF en tant que localTrusted. (Avant Flash Player 8, le contenu local était traité de cette façon.) S'il s'agit d'un fichier local, Flash Player classe le fichier SWF en tant que remote.

Pour plus d'informations, consultez les références suivantes :


Implémentation
    public static function get sandboxType():String

Voir aussi

Détails des méthodes
allowDomain()méthode
public static function allowDomain(... domains):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Permet aux fichiers SWF et HTML figurant dans les domaines identifiés d'accéder aux objets et aux variables du fichier SWF qui contient l'appel à allowDomain().

Si deux fichiers SWF sont servis à partir du même domaine, par exemple, http://mysite.com/swfA.swf et http://mysite.com/swfB.swf, alors swfA.swf peut alors analyser et modifier les variables, les objets, les propriétés, les méthodes, etc. dans swfB.swf et swfB.swf peut faire la même chose pour swfA.swf. Ceci est appelé programmation entre plusieurs animations ou programmation croisée.

Si deux fichiers SWF sont servis à partir de domaines différents, par exemple, http://siteA.com/swfA.swf et http://siteB.com/siteB.swf, puis, par défaut, Flash Player n'autorise pas swfA.swf à créer un script pour swfB.swf, mais pas swfB.swf à créer un script pour swfA.swf. Un fichier SWF transmet des fichiers SWF provenant d'autres domaines en appelant Security.allowDomain(). Ceci s'appelle programmation de scripts interdomaines. En appelant Security.allowDomain("siteA.com"), siteB.swf autorise siteA.swf à créer un script le contrôlant.

Dans tout contexte interdomaines, il est important d'identifier clairement les parties impliquées. Dans le cadre de cette discussion, le côté procédant à la programmation croisée sera appelé partie procédant à l'accès (habituellement le fichier SWF procédant à l'accès), et l'autre côté sera appelé partie cible (généralement le fichier SWF cible). Lorsque siteA.swf crée un script contrôlant siteB.swf, siteA.swf est la partie qui procède à l'accès et siteB.swf la partie réceptrice.

Les autorisations interdomaines établies avec allowDomain() sont asymétriques. Dans l'exemple précédent, siteA.swf peut créer un script contrôlant siteB.swf, mais siteB.swf ne peut pas créer de script de contrôle de siteA.swf, car siteA.swf n'a pas appelé allowDomain() pour donner aux fichiers SWF de siteB.com l'autorisation de créer un script de contrôle. Vous pouvez définir des autorisations symétriques en faisant les deux fichiers SWF appeler allowDomain().

En dehors de la protection des fichiers SWF contre les scripts interdomaines provenant d'autres fichiers SWF, Flash Player protège également les fichiers SWF contre ce type de script provenant des fichiers HTML. La programmation HTML vers SWF peut se produire avec des fonctions anciennes du navigateur Flash telles que SetVariable ou en appelant des fonctions de rappel établies avec ExternalInterface.addCallback(). Lorsque la programmation HTML vers SWF franchit les domaines, le SWF cible doit également appeler allowDomain(), comme s'il avait été appelé par un fichier SWF, faute de quoi l'opération échouera.

La spécification de l'adresse IP en tant que paramètre pour allowDomain() n'autorise pas l'accès de toutes les parties provenant de l'adresse IP spécifiée. Par contre, elle autorise l'accès uniquement par une partie qui contient l'adresse IP spécifiée dans son URL, et non pas un nom de domaine qui renvoie à cette adresse IP.

Différences liées à la version

Les règles de sécurité interdomaines de Flash Player ont évolué de version en version. Le tableau suivant récapitule les différences.

Versions SWF les plus récentes impliquées dans les opérations de programmation croiséeallowDomain() nécessaire ?allowInsecureDomain() nécessaire ?Quel fichier SWF doit appeler allowDomain() ou allowInsecureDomain() ?Qu'est-ce qui peut être spécifié dans allowDomain() ou allowInsecureDomain() ?
5 ou plus récenteNonNonS/OS/O
6Oui, si les superdomaines ne concordent pasNonLe fichier SWF en cours d'accès ou tout fichier SWF appartenant au même superdomaine que le fichier SWF en cours d'accès.
  • Domaine de type texte (monsite.com)
  • Adresse IP (192.168.1.1)
7Oui, si les domaines ne concordent pas exactementOui, en cas d'accès HTTP vers HTTPS (même si les domaines correspondent exactement)Le fichier SWF en cours d'accès ou tout fichier SWF appartenant exactement au même domaine que le fichier SWF en cours d'accès.
  • Domaine de type texte (monsite.com)
  • Adresse IP (192.168.1.1)
8 ou plus récenteOui, si les domaines ne concordent pas exactementOui, en cas d'accès HTTP vers HTTPS (même si les domaines correspondent exactement)SWF cible
  • Domaine de type texte (monsite.com)
  • Adresse IP (192.168.1.1)
  • Caractère générique (*)

Les versions qui contrôlent le comportement de Flash Player désignent les versions SWF (la version publiée d'un fichier SWF), non pas la version de Flash Player. Par exemple, lorsque Flash Player 8 lit un fichier SWF publié par la version 7, il applique un comportement compatible à la version 7. Cette pratique permet de garantir que les mises à jour du lecteur ne changent pas le comportement de Security.allowDomain() dans les fichiers SWF déployés.

La colonne Version du tableau précédent indique la version la plus récente des fichiers SWF lors des opérations de programmation croisée. Le comportement de Flash Player dépend de la version du fichier SWF procédant à l'accès ou du fichier SWF cible, en retenant la version supérieure.

Les paragraphes suivants fournissent de plus amples informations sur les modifications de sécurité de Flash Player impliquant Security.allowDomain().

Version 5. Il n'y a aucune restriction de programmation de scripts interdomaines.

Version 6. Des fonctions de sécurité contre la programmation interdomaines ont été introduites. Par défaut, Flash Player empêche la programmation interdomaines, tandis que Security.allowDomain() l'autorise. Pour déterminer si deux fichiers appartiennent au même domaine, Flash Player utilise le superdomaine de chaque fichier, qui correspond au nom d'hôte exact de l'URL du fichier, moins le premier segment, jusqu'à un minimum de deux segments. Par exemple, le superdomaine de www.mysite.com est mysite.com. Les fichiers SWF de www.mysite.com et store.mysite.com ne peuvent pas se contrôler mutuellement par script sans un appel à Security.allowDomain().

Version 7. Le filtrage de superdomaine est modifié pour obtenir la correspondance exacte des domaines. Deux fichiers ne peuvent se programmer que si les noms d'hôte figurant dans leurs URL sont identiques ; sinon vous devez effectuer un appel à Security.allowDomain(). Par défaut, les fichiers chargés à partir des URL qui ne sont pas de type HTTPS ne sont plus autorisés à programmer les fichiers chargés à partir des URL HTTPS, même si les fichiers sont chargés à partir d'un domaine rigoureusement identique. Cette restriction permet de protéger les fichiers HTTPS, car un fichier non HTTPS est susceptible d'être modifié sans téléchargement, et tout fichier non HTTPS modifié de façon illicite risque de corrompre un fichier HTTPS, qui serait normalement protégé contre ce type de modification. La méthode Security.allowInsecureDomain() a été introduite pour permettre aux fichiers SWF HTTPS en cours d'accès de désactiver de façon volontaire cette restriction. Néanmoins, l'utilisation de Security.allowInsecureDomain() est déconseillée.

Version 8. Il existe deux grands domaines de modification :

De façon exceptionnelle, la situation suivante peut se produire : Vous chargez un fichier SWF enfant à partir d'un domaine différent et souhaitez lui permettre de créer un script sur le fichier SWF parent, mais vous ne connaissez pas le domaine final du fichier SWF enfant. Cela peut se produire, par exemple, lorsque vous utilisez des redirections d'équilibrage de charge ou des serveurs tiers.

Dans ce cas, vous pouvez utiliser la propriété url de l'objet URLRequest que vous transmettez à Loader.load(). Par exemple, si vous chargez un fichier SWF dans un fichier SWF parent, vous pouvez accéder à la propriété contentLoaderInfo de l'objet Loader pour le fichier SWF parent :

Security.allowDomain(loader.contentLoaderInfo.url)

Vous devez attendre le début du chargement du fichier SWF enfant pour obtenir la valeur correcte de la propriété url. Pour détecter le début du chargement du fichier SWF, exploite l'événement progress.

La situation opposée peut également se produire ; en effet, vous pouvez créer un fichier SWF enfant sur lequel son fichier parent pourra créer un script, mais qui ignore le domaine de celui-ci. Dans ce cas, vous pouvez accéder à la propriété loaderInfo de l'objet d'affichage qui correspond à l'objet racine du fichier SWF. Dans le fichier SWF enfant, appelez Security.allowDomain( this.root.loaderInfo.loaderURL). Il n'est pas nécessaire d'attendre la fin du chargement du fichier SWF parent ; le parent sera déjà chargé lorsque celui de l'enfant commencera.

Si vous procédez à la publication de Flash Player 8 ou une version ultérieure, vous pouvez également traiter ces situations en appelant Security.allowDomain("*"). Cependant, il peut parfois s'agir d'un raccourci dangereux, dans la mesure où il autorise tout autre fichier SWF, quel que soit le domaine de ce dernier, à accéder au fichier SWF procédant à l'appel. Il est généralement plus sûr d'utiliser la propriété _url.

Pour plus d'informations, consultez les références suivantes :

Paramètres

... domains — Une ou plusieurs chaînes ou objets URLRequest qui nomment les domaines à partir desquels vous souhaitez autoriser l'accès. Vous pouvez spécifier le domaine spécial « * » pour autoriser l'accès à partir de tous les domaines.

La spécification de « * » constitue la seule façon d'accéder aux fichiers SWF non locaux à partir des fichiers SWF locaux qui ont été publiés à l'aide du paramètre Accès au réseau uniquement pour l'option Sécurité de lecture locale dans l'outil de programmation Flash.

Voir aussi

allowInsecureDomain()méthode 
public static function allowInsecureDomain(... domains):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Permet aux fichiers SWF et HTML appartenant aux domaines identifiés d'accéder aux objets et variables du fichier SWF effectuant l'appel, hébergé à l'aide du protocole HTTPS. Cette méthode n'est pas recommandée ; reportez-vous à « Considérations de sécurité », plus bas dans cette section.

Cette méthode fonctionne de la même façon que Security.allowDomain(), mais elle autorise en outre des opérations où la partie qui procède à l'accès est chargée avec un protocole non HTTPS et la partie cible est chargée avec le protocole HTTPS. A partir de la version 7 de Flash Player, les fichiers non HTTPS ne sont pas autorisés à programmer les fichiers HTTPS. La méthode allowInsecureDomain() lève cette restriction lorsque le fichier SWF HTTPS cible l'utilise.

Utilisez allowInsecureDomain() uniquement pour activer la programmation des fichiers non HTTPS vers les fichiers HTTPS. Utilisez cette méthode pour activer le script lorsque le fichier non HTTPS qui procède à l'accès et le fichier HTTPS qui est accédé sont servis à partir du même domaine. Par exemple, si un fichier SWF sur http://mysite.com doit contrôler par script un fichier SWF sur https://mysite.com. N'utilisez pas cette méthode pour activer les scripts de contrôle entre des fichiers non HTTPS, entre fichiers HTTPS ou de fichiers HTTPS vers des fichiers non HTTPS. Dans ces situations, recourez plutôt à allowDomain().

Considérations de sécurité : Flash Player offre la méthode allowInsecureDomain() pour plus de souplesse, même si l'appel de cette méthode n'est pas recommandé. La transmission d'un fichier avec le protocole HTTPS offre plusieurs protections pour vous et vos utilisateurs. Le fait d'appeler allowInsecureDomain affaiblit l'une de ces protections. Le scénario suivant illustre la façon dont la méthode allowInsecureDomain(), si elle n'est pas utilisée avec prudence, risque de compromettre la sécurité.

Tenez compte du fait que les informations suivantes constituent uniquement l'un des scénarios possibles et sont conçues pour vous aider à comprendre allowInsecureDomain() par l'intermédiaire d'un exemple réaliste de programmation croisée. Cet exemple ne couvre pas tous les problèmes relatifs à l'architecture de sécurité et doit être utilisé uniquement comme référence générale. Le Centre de développement de Flash Player contient des informations détaillées sur Flash Player et la sécurité. Pour plus d'informations, consultez http://www.adobe.com/devnet/security/.

Supposons que vous deviez créer un site de commerce électronique qui comprend deux composants : un catalogue, qui ne doit pas nécessairement être sécurisé, dans la mesure où il contient uniquement des informations publiques ; et un composant panier/règlements, qui doit être sécurisé pour protéger les informations financières et personnelles des utilisateurs. Supposons que vous deviez servir le catalogue à partir de http://mysite.com/catalog.swf et le panier à partir de https://mysite.com/cart.swf. Le cahier des charges de votre site exige qu'aucun tiers ne puisse voler les numéros de carte de crédit de votre utilisateur en profitant des faiblesses de votre architecture de sécurité.

Imaginons qu'un intermédiaire malveillant tente d'intervenir entre le serveur et vos utilisateurs pour s'emparer des numéros de carte de crédit que vos utilisateurs pénètrent dans votre application de panier. L'intermédiaire, peut être un FAI peu scrupuleux, par exemple, ou un administrateur malveillant travaillant dans la même entreprise que certains utilisateurs, ou de façon plus générale, toute personne ayant la possibilité d'afficher ou modifier les paquets réseau transmis sans protection sur Internet, entre vos utilisateurs et vos serveurs. Cette situation n'est pas rare.

Si cart.swf utilise HTTPS pour transmettre les informations bancaires aux serveurs, l'intermédiaire ne peut pas voler directement ces informations en détournant les paquets réseau, dans la mesure où la transmission HTTPS est chiffrée. Cependant, l'attaquant utilise une autre technique : modifier le contenu de l'un de vos fichiers SWF pendant sa remise à l'utilisateur, en remplaçant le fichier SWF par une version modifiée qui détourne les informations relatives à l'utilisateur vers un autre serveur.

Le protocole HTTPS, entre autres, empêche l'application de cette « modification », dans la mesure où non seulement les transmissions HTTPS sont chiffrées mais encore protégées contre les modifications. Si un intermédiaire tente de modifier un paquet, le récepteur détecte la modification et refuse le paquet. Ainsi, l'attaquant ne peut pas modifier cart.swf, dans la mesure où il est transmis par l'intermédiaire du protocole HTTPS.

Supposons maintenant que vous souhaitiez autoriser les boutons dans catalog.swf, servi par le protocole HTTP, pour ajouter des éléments au panier dans cart.swf, servi par le protocole HTTPS. Pour accomplir ceci, cart.swf appelle allowInsecureDomain(), ce qui autorise catalog.swf à créer un script de contrôle pour cart.swf. Cette action entraîne une conséquence non intentionnelle : un attaquant pourrait modifier catalog.swf lorsqu'il est téléchargé par l'utilisateur, car catalog.swf est transmis avec le protocole HTTP et n'offre aucune protection contre les modifications. Le fichier catalog.swf modifié par l'attaquant peut désormais programmer cart.swf, dans la mesure où cart.swf contient un appel à allowInsecureDomain(). Le fichier catalog.swf modifié peut utiliser ActionScript pour accéder aux variables de cart.swf et lire ainsi les informations sur les cartes bancaires et autres données sensibles. Le fichier catalog.swf peut ensuite envoyer ces données au serveur d'un attaquant.

Naturellement, cette implémentation n'est pas souhaitable, mais vous devez autoriser la programmation croisée entre les deux fichiers SWF de votre site. Voici deux façons de changer la conception de ce site virtuel d'e-commerce afin d'éviter allowInsecureDomain() :

Les navigateurs Web appliquent la séparation des fichiers HTTPS et non HTTPS depuis de nombreuses années et le scénario ci-dessus illustre l'utilité de cette restriction. Flash Player permet de contourner cette restriction de sécurité lorsque c'est strictement nécessaire, mais analysez les conséquences avant d'y procéder.

Pour plus d'informations, consultez les références suivantes :

Paramètres

... domains — Une ou plusieurs chaînes ou objets URLRequest qui nomment les domaines à partir desquels vous souhaitez autoriser l'accès. Vous pouvez spécifier le domaine spécial « * » pour autoriser l'accès à partir de tous les domaines.

La spécification de « * » constitue la seule façon d'accéder aux fichiers SWF non locaux à partir des fichiers SWF locaux qui ont été publiés à l'aide du paramètre Accès au réseau uniquement pour l'option Sécurité de lecture locale (Fichier > Paramètres de publication > onglet Flash) dans l'outil de programmation Flash.

Voir aussi

loadPolicyFile()méthode 
public static function loadPolicyFile(url:String):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Charge un fichier de régulation interdomaines à partir d'un emplacement spécifié par le paramètre url. Les fichiers de régulation de Flash Player font office de mécanisme d'autorisation. Ils permettent de charger des données vers des animations Flash depuis un serveur autre que celui sur lequel elles se trouvent.

Par défaut, Flash Player recherche les fichiers de régulation dans un emplacement unique : /crossdomain.xml sur le serveur sur lequel porte la requête de chargement des données.

Avec Security.loadPolicyFile(), Flash Player peut charger les fichiers de régulation à partir d'emplacements aléatoires, comme il est indiqué dans l'exemple suivant :

  Security.loadPolicyFile("http://www.example.com/sub/dir/pf.xml");
  

De cette manière, Flash Player peut récupérer un fichier de régulation à l'URL spécifiée. Les permissions accordées par l'intermédiaire de ce fichier s'appliquent à l'ensemble du contenu, au même niveau ou à un niveau inférieur dans la hiérarchie virtuelle des répertoires du serveur. Par exemple, selon le code précédent, ces lignes ne renvoient pas d'exception :

 import flash.net.*;
  var request:URLRequest = new URLRequest("http://www.example.com/sub/dir/vars.txt");
  var loader:URLLoader = new URLLoader();
  loader.load(request);
  
  var loader2:URLLoader = new URLLoader();
  var request2:URLRequest = new URLRequest("http://www.example.com/sub/dir/deep/vars2.txt");
  loader2.load(request2);
  

Par contre, le code suivant renvoie une exception de sécurité :

 import flash.net.*;
  var request3:URLRequest = new URLRequest("http://www.example.com/elsewhere/vars3.txt");
  var loader3:URLLoader = new URLLoader();
  loader3.load(request3);
  

Vous pouvez utiliser loadPolicyFile() pour charger un nombre illimité de fichiers de régulation. Dans le cas d'une requête impliquant un fichier de régulation, Flash Player attend que le téléchargement des fichiers de régulation soit terminé avant de rejeter une requête. En dernier recours, si aucun des fichiers de régulation spécifiés par loadPolicyFile() n'autorise la requête, Flash Player effectue une recherche à l'emplacement par défaut, /crossdomain.xml.

L'utilisation du protocole xmlsocket avec un numéro de port spécifique permet de récupérer directement les fichiers de régulation depuis un serveur XMLSocket, comme indiqué dans l'exemple suivant :

  Security.loadPolicyFile("xmlsocket://foo.com:414");
  

De cette manière, Flash Player peut récupérer un fichier de régulation au niveau du port et de l'hôte spécifiés. Il est possible d'utiliser n'importe quel port (et non plus uniquement le port 1024 ou un port de numéro supérieur). Lors de la connexion au port spécifié, Flash Player transmet <policy-file-request />, suivi d'un octet de terminaison null. Il est possible de configurer un serveur XMLSocket afin qu'il distribue des fichiers de régulation et des connexions XMLSocket normales en utilisant un port unique. Dans ce cas, le serveur attend de recevoir <policy-file-request /> avant de transmettre un fichier de régulation. Il est également possible de configurer un serveur afin qu'il distribue les fichiers de régulation et les connexions standard via des ports différents. Dans ce cas, le serveur peut transmettre un fichier dès qu'une connexion est établie au niveau du port dédié aux fichiers de régulation. Le serveur doit renvoyer un octet nul à la fin du fichier de régulation avant de fermer la connexion. Si le serveur ne ferme pas la connexion, Flash Player y met fin après avoir reçu l'octet de terminaison null.

La syntaxe des fichiers de régulation transmis par un serveur XMLSocket est identique à celle des autres fichiers de régulation, à l'exception près que ces fichiers doivent également spécifier les ports auxquels ils permettent d'accéder. Un fichier de régulation transmis via un port dont le numéro est inférieur à 1024 peut autoriser l'accès à tous les ports. Un fichier de régulation transmis via le port 1024 ou supérieur ne peut définir l'accès qu'au port 1024 et aux ports supérieurs. Les ports accessibles sont spécifiés par l'attribut "to-ports" dans la balise <allow-access-from>. Il est possible d'utiliser des numéros de ports, des plages de ports et des caractères génériques. L'exemple suivant illustre un fichier de régulation XMLSocket :

  <cross-domain-policy>
    <allow-access-from domain="*" to-ports="507" />
    <allow-access-from domain="*.foo.com" to-ports="507,516" />
    <allow-access-from domain="*.bar.com" to-ports="516-523" />
    <allow-access-from domain="www.foo.com" to-ports="507,516-523" />
    <allow-access-from domain="www.bar.com" to-ports="*" />
  </cross-domain-policy>
  

Les fichiers de régulation récupérés à partir de l'ancien emplacement par défaut (emplacement —/crossdomain.xml d'un serveur HTTP sur le port 80) permettent implicitement d'accéder aux ports 1 024 et supérieurs. Il est impossible de récupérer un fichier de régulation autorisant des opérations XMLSocket depuis un autre emplacement sur un serveur HTTP. Les emplacements personnalisés des fichiers de régulation XMLSocket doivent être situés sur le serveur XMLSocket.

L'autorisation de connexion aux ports inférieurs à 1 024 ne peut être accordée que par un fichier de stratégie chargé par loadPolicyFile().

Vous pouvez empêcher un fichier SWF d'utiliser cette méthode en définissant le paramètre allowNetworking des balises object et embed dans la page HTML qui comporte le contenu SWF.

Pour plus d'informations, consultez les références suivantes :

Paramètres

url:String — L'emplacement de l'URL du fichier de régulation interdomaines à charger.

Voir aussi

showSettings()méthode 
public static function showSettings(panel:String = "default"):void

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Affiche le panneau Paramètres de sécurité de Flash Player.

Paramètres

panel:String (default = "default") — Une valeur de la classe SecurityPanel qui permet de spécifier le panneau Paramètres de sécurité à afficher. Si vous omettez ce paramètre, SecurityPanel.DEFAULT est utilisé.

Voir aussi

Détails de la constante
LOCAL_TRUSTEDConstante
public static const LOCAL_TRUSTED:String = "localTrusted"

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Ce fichier SWF est un fichier local qui a reçu la confiance de l'utilisateur en utilisant soit le gestionnaire de paramètres, soit un fichier de configuration FlashPlayerTrust. Ce fichier SWF peut aussi bien lire à partir de sources locales de données qu'il peut communiquer avec Internet.

Voir aussi

LOCAL_WITH_FILEConstante 
public static const LOCAL_WITH_FILE:String = "localWithFile"

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Le fichier SWF est un fichier local qui n'a pas été approuvé par l'utilisateur, et n'a pas été publié avec la désignation de mise en réseau. Ce fichier SWF peut lire à partir de sources locales de données mais ne peut pas communiquer avec Internet.

Voir aussi

LOCAL_WITH_NETWORKConstante 
public static const LOCAL_WITH_NETWORK:String = "localWithNetwork"

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Le fichier SWF est un fichier local qui n'a pas été approuvé par l'utilisateur, et a été publié avec la désignation de mise en réseau. Le fichier SWF peut communiquer sur Internet mais ne peut pas lire les sources de données locales.

Voir aussi

REMOTEConstante 
public static const REMOTE:String = "remote"

Version du langage : ActionScript 3.0
Version du lecteur : Flash Player 9

Ce fichier SWF provient d'une URL et fonctionne selon les règles basées sur le domaine du sandbox.

Voir aussi

Exemples Utilisation des exemples
SecurityExample.as

L'exemple suivant indique comment un événement click sur un objet Sprite permet d'afficher le panneau des paramètres de stockage local de la boîte de dialogue Paramètres de Flash Player. Un cadre orange est ajouté à la scène à l'aide de la méthode draw(). Dans draw(), un écouteur de l'événement click est ajouté sous le nom clickHandler(). Il répond aux événements click en ouvrant le panneau des paramètres de stockage local de Flash Player.
package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.events.*;
    import flash.system.Security;
    import flash.system.SecurityPanel;

    public class SecurityExample extends Sprite {
        private var bgColor:uint = 0xFFCC00;
        private var size:uint = 100;

        public function SecurityExample() {
            draw();
        }

        private function draw():void {
            var child:Sprite = new Sprite();
            child.graphics.beginFill(bgColor);
            child.graphics.drawRect(0, 0, size, size);
            child.graphics.endFill();
            child.buttonMode = true;

            var label:TextField = new TextField();
            label.text = "settings";
            label.selectable = false;
            label.mouseEnabled = false;
            child.addChild(label);

            child.addEventListener(MouseEvent.CLICK, clickHandler);
            addChild(child);
        }

        private function clickHandler(event:MouseEvent):void {
            Security.showSettings(SecurityPanel.LOCAL_STORAGE);
        }
    }
}




 

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/ActionScriptLangRefV3/flash/system/Security.html