Contrôles des autorisations

Flash Player 9 et les versions ultérieures, Adobe AIR 1.0 et les versions ultérieures

Le modèle de sécurité d’exécution du client Flash Player repose sur les ressources, c’est-à-dire des objets tels que des fichiers SWF, des données locales et des URL Internet. Les parties prenantes détiennent ou utilisent ces ressources. Elles peuvent exercer un contrôle (via des paramètres de sécurité) sur leurs propres ressources, chaque ressource ayant quatre parties prenantes. Flash Player applique une stricte hiérarchie d’autorité sur ces contrôles, comme le montre l’illustration suivante :

Hiérarchie d’autorité
Hiérarchie des contrôles de sécurité

Ainsi, par exemple, si un administrateur restreint l’accès à une ressource, aucune autre partie prenante ne peut revenir sur cette restriction.

Pour une application AIR, ces contrôles d’autorisations ne s’appliquent qu’au contenu exécuté en dehors de son sandbox.

Contrôles administrateur

L’administrateur d’un ordinateur (un utilisateur ayant ouvert une session avec des droits d’administration) peut définir des paramètres de sécurité Flash Player qui s’appliquent à tous les utilisateurs de l’ordinateur. Dans un environnement autre que l’entreprise, par exemple un ordinateur domestique, un utilisateur dispose aussi d’un accès administrateur. Même au sein d’une entreprise, certains utilisateurs peuvent posséder des droits d’administration sur l’ordinateur.

Il existe deux types de contrôles administrateur :

  • Fichier mms.cfg

  • Répertoire Flash Player Trust global

Fichier mms.cfg

Le fichier mms.cfg est un fichier texte qui permet à l’administrateur d’autoriser ou de limiter l’accès à diverses fonctionnalités. Lors du lancement de Flash Player, l’application lit les paramètres de sécurité dans ce fichier, puis les utilise pour limiter la fonctionnalité. Le fichier mms.cfg contient des paramètres utilisés par l’administrateur pour gérer des fonctionnalités telles que les contrôles de confidentialité, la sécurité des fichiers locaux, les connexions socket, etc.

Un fichier SWF peut obtenir des informations sur les fonctions désactivées en appelant les propriétés Capabilities.avHardwareDisable et Capabilities.localFileReadDisable. Toutefois, la plupart des paramètres du fichier mms.cfg ne peuvent être interrogés à partir d’ActionScript.

Pour mettre en place sur un ordinateur des stratégies de confidentialité et de sécurité indépendantes des applications, le fichier mms.cfg doit être uniquement modifié par un administrateur système. Le fichier mms.cfg n’est pas destiné aux programmes d’installation des applications. Bien qu’un programme d’installation exécuté avec des privilèges administrateur puisse modifier le contenu du fichier mms.cfg, Adobe considère cette pratique comme une violation de la confiance de l’utilisateur et presse les créateurs de programmes d’installation de ne jamais modifier le fichier mms.cfg.

Le fichier mms.cfg est enregistré dans le chemin suivant :

  • Windows : system\Macromed\Flash\mms.cfg

    (par exemple, C:\windows\system32\Macromed\Flash\mms.cfg)

  • Mac : app support/Macromedia/mms.cfg

    (par exemple, /Bibliothèque/Application Support/Macromedia/mms.cfg)

Pour plus d’informations sur le fichier mms.cfg, voir le Guide d’administration de Flash Player à l’adresse suivante : www.adobe.com/go/flash_player_admin_fr.

Répertoire Flash Player Trust global

Les administrateurs et les programmes d’installation peuvent approuver des fichiers SWF locaux spécifiques pour tous les utilisateurs. Ces fichiers SWF sont associés au sandbox local approuvé. Ils peuvent interagir avec tout autre fichier SWF puisqu’ils peuvent charger des données stockées localement ou à distance. Les fichiers approuvés dans le répertoire Flash Player Trust global se trouvent dans le chemin suivant :

  • Windows : system\Macromed\Flash\FlashPlayerTrust

    (par exemple, C:\WINDOWS\system32\Macromed\Flash\FlashPlayerTrust)

  • Mac : app support/Macromedia/FlashPlayerTrust

    (par exemple, /Bibliothèque/Application Support/Macromedia/FlashPlayerTrust)

Le répertoire Flash Player Trust peut contenir un nombre illimité de fichiers texte, chacun répertoriant des chemins d’accès approuvés, à raison d’un chemin par ligne. Chaque chemin d’accès peut mener à un fichier SWF ou HTML, ou à un répertoire. Les lignes de commentaire commencent par le symbole #. Par exemple, un fichier de configuration Flash Player Trust contenant le texte suivant approuve tous les fichiers placés dans le répertoire spécifié et ses sous-répertoires :

# Trust files in the following directories: 
C:\Documents and Settings\All Users\Documents\SampleApp

Les chemins répertoriés dans un fichier de configuration Trust doivent toujours faire référence au système local ou à un réseau SMB. Les chemins d’accès HTTP placés dans un fichier de configuration Trust sont ignorés; seuls les fichiers locaux peuvent être approuvés.

Pour éviter les conflits, attribuez au fichier de configuration Trust un nom correspondant à l’application installée, suivi de l’extension de fichier .cfg.

En tant que développeur diffusant un fichier SWF à exécuter localement par le biais d’un programme d’installation, vous pouvez faire en sorte que ce programme d’installation ajoute un fichier de configuration au répertoire Flash Player Trust global afin d’accorder des privilèges complets au fichier que vous diffusez. Le programme d’installation doit être exécuté par un utilisateur doté de droits d’administration. Contrairement au fichier mms.cfg, le répertoire Flash Player Trust global est prévu pour les programmes d’installation devant accorder des autorisations. Il permet aux administrateurs et aux programmes d’installation de désigner des applications locales approuvées.

Il existe également des répertoires Flash Player Trust destinés aux utilisateurs individuels (voir Contrôles utilisateur).

Contrôles utilisateur

Flash Player propose trois mécanismes de définition des autorisations au niveau utilisateur : l’interface de paramétrage, le Gestionnaire des paramètres et le répertoire Flash Player Trust utilisateur.

Interface de paramétrage et Gestionnaire des paramètres

L’interface de paramétrage est un mécanisme interactif qui permet de configurer rapidement les paramètres d’un domaine donné. Le Gestionnaire des paramètres, avec son interface plus détaillée, permet d’effectuer des modifications globales sur les autorisations de plusieurs domaines ou de tous. En outre, si un fichier SWF nécessite une nouvelle autorisation qui oblige à prendre des décisions en cours d’exécution concernant la sécurité ou la confidentialité, des boîtes de dialogue s’affichent dans lesquelles les utilisateurs peuvent régler certains paramètres de Flash Player.

Le Gestionnaire des paramètres et l’interface de paramétrage proposent des options associées à la sécurité telles que les paramètres de la caméra et du microphone, les paramètres de stockage d’objets partagés, les paramètres relatifs au contenu hérité, etc. Les applications AIR ne disposent ni du Gestionnaire des paramètres, ni de l’interface de paramétrage.

Remarque : les réglages effectués dans le fichier mms.cfg (voir Contrôles administrateur) n'apparaissent pas dans le Gestionnaire des paramètres.

Pour plus d’informations sur le Gestionnaire des paramètres, voir www.adobe.com/go/settingsmanager_fr.

Répertoire Flash Player Trust utilisateur

Les utilisateurs et programmes d’installation peuvent approuver des fichiers SWF locaux spécifiques. Ces fichiers SWF sont associés au sandbox local approuvé. Ils peuvent interagir avec tout autre fichier SWF puisqu’ils peuvent charger des données stockées localement ou à distance. Pour approuver un fichier, l’utilisateur le désigne dans le répertoire Player Trust utilisateur, qui se trouve dans le même répertoire que la zone de stockage des objets partagés Flash, aux emplacements suivants (ces emplacements sont spécifiques à l’utilisateur actif) :

  • Windows : app data\Macromedia\Flash Player\#Security\FlashPlayerTrust

    (par exemple, C:\Documents and Settings\JohnD\Application Data\Macromedia\Flash Player\#Security\FlashPlayerTrust sous Windows XP ou C:\Users\JohnD\AppData\Roaming\Macromedia\Flash Player\#Security\FlashPlayerTrust sous Windows Vista)

    Sous Windows, le dossier Application Data est caché par défaut. Pour afficher les dossiers et fichiers cachés, sélectionnez le Poste de travail pour ouvrir l’Explorateur Windows, choisissez Outils > Options des dossiers et sélectionnez l’onglet Affichage. Sous l’onglet Affichage, sélectionnez le bouton d’option Afficher les fichiers et les dossiers cachés.

  • Mac : app data/Macromedia/Flash Player/#Security/FlashPlayerTrust

    (par exemple, /Utilisateurs/JohnD/Bibliothèque/Preferences/Macromedia/Flash Player/#Security/FlashPlayerTrust)

    Ces paramètres s’appliquent uniquement à l’utilisateur actif, et non aux autres utilisateurs qui ouvrent une session sur l’ordinateur. Si un utilisateur sans droits d’administration installe une application dans sa partie réservée du système, le répertoire Flash Player Trust utilisateur permet au programme d’installation d’enregistrer cette application comme approuvée pour l’utilisateur en question.

    En tant que développeur diffusant un fichier SWF à exécuter localement par le biais d’un programme d’installation, vous pouvez faire en sorte que ce programme d’installation ajoute un fichier de configuration au répertoire Flash Player Trust utilisateur afin d’accorder des privilèges complets au fichier que vous diffusez. Même dans ce cas de figure, le fichier placé dans le répertoire Flash Player Trust utilisateur constitue un contrôle utilisateur puisque son initialisation résulte d’une action de l’utilisateur (l’installation).

    Il existe également un répertoire Flash Player Trust global utilisé par l’administrateur ou les programmes d’installation pour enregistrer une application destinée à l’ensemble des utilisateurs d’un ordinateur (voir Contrôles administrateur).

Contrôles de site Web (fichiers de régulation)

Si vous souhaitez rendre les données d’un serveur Web accessibles aux fichiers SWF issus de domaines différents, vous pouvez créer un fichier de régulation sur votre serveur. Un fichier de régulation est un fichier XML résidant à un emplacement spécifique sur votre serveur.

Les fichiers de régulation ont une incidence sur l’accès à certains actifs, notamment les suivants :

  • Les données de fichiers bitmap, son et vidéo

  • Le chargement des fichiers XML et texte

  • L’importation de fichiers SWF à partir d’autres domaines de sécurité dans le domaine du fichier SWF à l’origine du chargement

  • L’accès aux connexions socket et socket XML

Les objets ActionScript instancient deux types de connexions serveur : les connexions serveur liées à des documents et les connexions socket. Les objets ActionScript tels que Loader, Sound, URLLoader et URLStream instancient des connexions serveur liées à des documents et chargent un fichier à partir d’une URL. Les objets ActionScript Socket et XMLSocket établissent des connexions socket, qui fonctionnent avec des flux de données et non des documents chargés.

Flash Player prenant en charge deux types de connexions serveur, il existe deux types de fichiers de régulation : les fichiers de régulation d’URL et les fichiers de régulation socket.
  • Les connexions liées à des documents exigent des fichiers de régulation d’URL. Ces fichiers permettent au serveur d’indiquer que ses données et documents sont accessibles aux fichiers SWF servis à partir de certains domaines ou de tous les domaines.

  • Les connexions socket requièrent des fichiers de régulation socket, qui permettent un accès réseau direct au niveau socket TCP le plus bas, à l’aide des classes Socket et XMLSocket.

Flash Player exige que les fichiers de régulation soient transmis par le biais du protocole utilisé par la tentative de connexion. Par exemple, si vous placez un fichier de régulation sur un serveur HTTP, les fichiers SWF issus d’autres domaines sont autorisés à charger les données qu’il contient en tant que serveur HTTP. Cependant, si vous ne fournissez aucun fichier de régulation socket sur ce même serveur, vous empêchez les fichiers SWF issus d’autres domaines d’accéder au serveur au niveau socket. La méthode de récupération du fichier de régulation doit donc correspondre à la méthode de connexion.

L’utilisation et la syntaxe des fichiers de régulation, tels qu’ils s’appliquent aux fichiers SWF publiés pour Flash Player 10, sont décrites dans les paragraphes suivants (l’implémentation des fichiers de régulation est légèrement différente dans les versions antérieures de Flash Player, dont la sécurité a été renforcée ultérieurement). Pour plus d’informations sur les fichiers de régulation, voir le chapitre « Modifications du fichier de régulation dans Flash Player 9 » dans le Centre des développeurs Flash Player à l’adresse www.adobe.com/go/devnet_security_fr.

Le code exécuté dans le sandbox de l’application AIR ne requiert pas de fichier de régulation pour accéder aux données issues d’une URL ou d’un socket. Le code d’une application AIR exécuté dans un sandbox hors application nécessite en revanche un fichier de régulation.

Fichiers de régulation maître

Par défaut, Flash Player (et le contenu AIR qui ne figure pas dans le sandbox d’application AIR) commence par rechercher le fichier de régulation d’URL crossdomain.xml dans le répertoire racine du serveur, puis recherche un fichier de régulation socket sur le port 843. Tout fichier résidant à l’un de ces emplacements constitue le fichier de régulation maître (dans le cas des connexions socket, Flash Player recherche également un fichier de régulation socket sur le port utilisé par la connexion principale. Un fichier de régulation se trouvant sur ce port ne constitue cependant pas un fichier de régulation maître).

Outre la définition des autorisations d’accès, le fichier de régulation maître peut également contenir une instruction meta-policy. Une méta-régulation détermine les emplacements auxquels peuvent résider les fichiers de régulation. La méta-régulation par défaut des fichiers de régulation d’URL correspond à « master-only » ; autrement dit, /crossdomain.xml est le seul fichier de régulation autorisé sur le serveur. La méta-régulation par défaut des fichiers de régulation socket correspond à « all » ; autrement dit, tout socket figurant sur l’hôte peut servir un fichier de régulation de socket.

Remarque : dans Flash Player 9 et les versions antérieures, la méta-régulation par défaut des fichiers de régulation d’URL correspondait à « all ». Tout répertoire peut donc contenir un fichier de régulation. Si vous avez déployé des applications qui chargent d’autres fichiers de régulation que le fichier /crossdomain.xml par défaut, et que ces applications sont maintenant susceptibles de s’exécuter dans Flash Player 10, vous (ou l’administrateur du serveur) devez modifier le fichier de régulation maître pour autoriser l’utilisation d’autres fichiers de régulation. Pour plus d’informations sur la définition d’une méta-régulation différente, voir le chapitre « Modifications du fichier de régulation dans Flash Player 9 » dans le Centre des développeurs Flash Player à l’adresse www.adobe.com/go/devnet_security_fr.

Un fichier SWF peut effectuer une recherche sur un nom de fichier de régulation ou un emplacement différent en appelant la méthode Security.loadPolicyFile(). Cependant, si le fichier de régulation maître ne spécifie pas que l’emplacement cible peut servir des fichiers de régulation, l’appel à loadPolicyFile() est sans effet, même si un fichier de régulation se trouve à l’emplacement en question. Appelez loadPolicyFile() avant d’exécuter toute opération réseau requérant le fichier de régulation. Flash Player place automatiquement les requêtes réseau derrière les tentatives de requête de fichier de régulation correspondantes. Il est donc acceptable, par exemple, d’appeler Security.loadPolicyFile() immédiatement avant de lancer une opération réseau.

Lorsqu’il recherche un fichier de régulation maître,. Flash Player attend une réponse du serveur pendant trois secondes. En l’absence d’une réponse, l’application considère comme acquis qu’il n’existe pas de fichier de régulation maître. Toutefois, si aucune valeur de dépassement de délai par défaut est définie pour les appels à loadPolicyFile(), Flash Player suppose que le fichier appelé existe et attend aussi longtemps que nécessaire pour le charger. Pour avoir la certitude qu’un fichier de régulation maître est chargé, appelez-le donc explicitement par le biais de loadPolicyFile().

Bien que la méthode s’appelle Security.loadPolicyFile(), aucun fichier de régulation n’est chargé tant qu’un appel réseau requérant un tel fichier n’a pas été émis. Les appels à loadPolicyFile() indiquent simplement à Flash Player où rechercher les fichiers de régulation, le cas échéant.

Aucune notification indiquant l’initiation ou la fin d’une requête de fichier de régulation n’est envoyée, car cela n’est pas nécessaire. Flash Player recherche les fichiers de régulation de manière asynchrone et attend automatiquement que ces recherches aient abouti pour établir des connexions.

Les sections suivantes s’appliquent uniquement aux fichiers de régulation d’URL. Pour plus d’informations sur les fichiers de régulation socket, voir Connexion aux sockets.

Portée des fichiers de régulation d’URL

Un fichier de régulation d’URL s’applique uniquement au répertoire dans lequel il est chargé et à ses sous-répertoires. Un fichier de régulation placé dans le répertoire racine s’applique à l’ensemble du serveur. En revanche, un fichier de régulation chargé d’un sous-répertoire quelconque s’applique uniquement à celui-ci et à ses sous-répertoires.

Un fichier de régulation contrôle uniquement l’accès au serveur sur lequel il réside. Par exemple, un fichier de régulation situé dans https://www.adobe.com:8080/crossdomain.xml ne s’applique qu’aux appels de chargement de données passés vers www.adobe.com sur HTTPS au port 8080.

Définition des autorisations d’accès dans un fichier de régulation d’URL

Un fichier de régulation contient une seule balise cross-domain-policy, qui contient elle-même aucune ou plusieurs balises allow-access-from. Chaque balise allow-access-from contient un attribut domain qui spécifie une adresse IP exacte, un domaine exact ou un domaine générique (tout domaine). Les domaines génériques sont indiqués de deux façons :
  • Par un astérisque (*) seul, qui représente tous les domaines et toutes les adresses IP

  • Par un astérisque suivi d’un suffixe, qui représente uniquement les domaines se terminant par ce suffixe

Les suffixes doivent commencer par un point. Cependant, les domaines génériques suivis de suffixes peuvent correspondre à des domaines qui sont composés uniquement du suffixe sans le point de séparation. xyz.com, par exemple, fait partie de *.xyz.com. L’utilisation de caractères génériques est interdite dans les spécifications de domaine IP.

L’exemple suivant présente un fichier de régulation d’URL qui autorise l’accès à des fichiers SWF issus des domaines *.example.com, www.friendOfExample.com et 192.0.34.166 :

<?xml version="1.0"?> 
<cross-domain-policy> 
    <allow-access-from domain="*.example.com" /> 
    <allow-access-from domain="www.friendOfExample.com" /> 
    <allow-access-from domain="192.0.34.166" /> 
</cross-domain-policy>

Si vous spécifiez une adresse IP, seuls les fichiers SWF chargés depuis cette adresse IP à l’aide de la syntaxe IP (par exemple, http://65.57.83.12/flashmovie.swf) sont accessibles ; les fichiers chargés à l’aide d’une syntaxe domaine-nom sont inaccessibles Flash Player n’effectue pas de résolution DNS.

Vous pouvez autoriser l’accès à des documents provenant de tout autre domaine, comme indiqué dans l’exemple suivant :

<?xml version="1.0"?> 
<!-- http://www.foo.com/crossdomain.xml --> 
<cross-domain-policy> 
<allow-access-from domain="*" /> 
</cross-domain-policy>

Chaque balise allow-access-from peut présenter l’attribut facultatif secure, dont la valeur par défaut est true. Si votre fichier de régulation se trouve sur un serveur HTTPS et que vous voulez autoriser les fichiers SWF résidant sur un autre type de serveur à charger des données à partir du serveur HTTPS, vous pouvez définir l’attribut sur false.

La définition de l’attribut secure sur false risque de compromettre la sécurité fournie par le protocole HTTPS. Plus particulièrement, la définition de cet attribut sur false rend le contenu sécurisé vulnérable aux attaques d’espionnage. Adobe recommande vivement de ne pas définir l’attribut secure sur false.

Si les données à charger se trouvent sur un serveur HTTPS, alors que le fichier SWF à l’origine du chargement réside sur un serveur HTTP, Adobe recommande le transfert du fichier SWF sur un serveur HTTPS. Ce faisant, toutes les copies de vos données sécurisées sont protégées par HTTPS. Cependant si vous décidez que vous devez conserver le fichier SWF à l’origine du chargement sur un serveur HTTP, ajoutez l’attribut secure="false" à la balise allow-access-from, comme le montre le code suivant :

<allow-access-from domain="www.example.com" secure="false" /> 
Pour autoriser l’accès, vous pouvez aussi utiliser la balise allow-http-request-headers-from. Elle permet à un client hébergeant du contenu issu d’un autre domaine d’autorisation d’envoyer des en-têtes définis par l’utilisateur à votre domaine. La balise <allow-access-from> autorise d’autres domaines à récupérer des données de votre domaine, tandis que la balise allow-http-request-headers-from permet à d’autres domaines d’envoyer des données, sous forme d’en-têtes, à votre domaine. Dans l’exemple ci-dessous, n’importe quel domaine est autorisé à envoyer l’en-tête SOAPAction au domaine en cours :
<cross-domain-policy> 
    <allow-http-request-headers-from domain="*" headers="SOAPAction"/> 
</cross-domain-policy>

Si l’instruction allow-http-request-headers-from figure dans le fichier de régulation maître, elle s’applique à tous les répertoires de l’hôte. Dans le cas contraire, elle s’applique uniquement au répertoire, et sous-répertoires correspondants, du fichier de régulation contenant l’instruction.

Préchargement des fichiers de régulation

Le chargement des données à partir d’un serveur ou la connexion à un socket sont des opérations asynchrones. Flash Player attend simplement la fin du téléchargement du fichier de régulation avant de lancer l’opération principale. En revanche, l’extraction de données de pixel d’images ou de données d’échantillonnage de sons est une opération synchrone. Le fichier de régulation doit donc être chargé pour que vous puissiez extraire les données. Lors du chargement du média, spécifiez que le fichier de régulation doit être recherché :

  • Si vous utilisez la méthode Loader.load(), définissez la propriété checkPolicyFile du paramètre context, qui constitue un objet LoaderContext.

  • Si vous incorporez une image dans un champ de texte à l’aide de la balise <img>, définissez l’attribut checkPolicyFile de la balise <img> sur true, comme dans l’exemple suivant :

    <img checkPolicyFile = "true" src = "example.jpg">
  • Si vous utilisez la méthode Sound.load(), définissez la propriété checkPolicyFile du paramètre context, qui constitue un objet SoundLoaderContext.

  • Si vous utilisez la classe NetStream, définissez la propriété checkPolicyFile de l’objet NetStream.

Lorsque vous définissez l’un de ces paramètres, Flash Player commence par vérifier si des fichiers de régulation ont déjà été téléchargés pour ce domaine. Il recherche ensuite le fichier de régulation à l’emplacement par défaut sur le serveur, puis les instructions <allow-access-from> et une méta-régulation. En dernier lieu, il contrôle tout appel en attente à la méthode Security.loadPolicyFile() pour vérifier s’il s’applique.

Contrôles de création (développeur)

L’API ActionScript principale utilisée dans l’attribution des privilèges de sécurité est la méthode Security.allowDomain(), qui accorde des droits aux fichiers SWF du domaine que vous spécifiez. Dans l’exemple suivant, un fichier SWF autorise l’accès des fichiers SWF servis à partir du domaine www.example.com :

Security.allowDomain("www.example.com")

Cette méthode autorise les opérations suivantes :

La méthode Security.allowDomain() sert avant tout à permettre aux fichiers SWF situés dans un domaine externe d’effectuer une programmation croisée avec le fichier SWF qui appelle la méthode Security.allowDomain(). Pour plus de détails sur la programmation croisée, voir Programmation croisée.

La spécification de l’adresse IP en tant que paramètre de Security.allowDomain() n’autorise pas l’accès de toutes les parties provenant de l’adresse IP spécifiée. Au contraire, elle autorise l’accès d’une partie présentant une URL identique à l’adresse IP spécifiée, plutôt qu’un nom de domaine renvoyant à l’adresse IP. Par exemple, si le nom de domaine www.example.com renvoie à l’adresse IP 192.0.34.166, un appel à Security.allowDomain("192.0.34.166") ne donne pas accès à www.example.com.

Vous pouvez transmettre le caractère générique "*" à la méthode Security.allowDomain() pour permettre l’accès à partir de tous les domaines. Soyez prudent lorsque vous utilisez le caractère générique "*" car celui-ci autorise les fichiers SWF issus de tous les domaines à effectuer une programmation dans le fichier SWF appelant.

ActionScript inclut une seconde API d’autorisation appelée Security.allowInsecureDomain(). Cette méthode joue le même rôle que la méthode Security.allowDomain() à la différence suivante : lorsqu’elle est appelée à partir d’un fichier SWF servi par une connexion HTTPS, elle autorise l’accès à ce fichier appelant pour d’autres fichiers SWF servis à partir d’un protocole non sécurisé, tel HTTP. Cependant, il est déconseillé de permettre la programmation croisée entre des fichiers issus d’un protocole sécurisé et ceux provenant d’un protocole qui ne l’est pas. Cette pratique est susceptible de rendre le contenu vulnérable aux attaques d’espionnage. Ces attaques se déroulent comme suit, par exemple : puisque la méthode Security.allowInsecureDomain() permet aux fichiers SWF servis sur des connexions HTTP d’accéder aux données HTTPS sécurisées, un attaquant qui s’interposerait entre le serveur HTTP et les utilisateurs pourraient remplacer votre fichier SWF HTTP par un fichier de son cru afin d’accéder à vos données HTTPS.

Important : le code exécuté dans le sandbox de l’application AIR n’est pas autorisé à appeler la méthode allowDomain() ou allowInsecureDomain() de la classe Security.

Autre méthode importante liée à la sécurité, Security.loadPolicyFile() permet à Flash Player de rechercher le fichier de régulation à un autre emplacement. Pour plus d’informations, voir Contrôles de site Web (fichiers de régulation).