Accessibilité
Ressources pour les développeurs

Table des matières

Modifications de la sécurité dans Flash Player 8

Diagrammes de la sécurité locale

Les diagrammes suivants résument les droits de sécurité locale décrits dans les sections précédentes.

Origines et Sandbox

Lorsqu'ils sont chargés dans Flash Player, tous les fichiers SWF sont placés dans un sandbox. La figure 5 décrit l'affectation des fichiers SWF aux différents sandbox selon leur origine. Les fichiers SWF issus du réseau, par exemple de a.com et b.com, sont toujours placés dans un sandbox qui correspond à leur domaine d'origine.

Affectation des Sandbox selon l'origine du fichier SWF

Figure 5. Affectation des Sandbox selon l'origine du fichier SWF

Les fichiers SWF d'origine locale (de systèmes de fichiers locaux ou de chemins réseau UNC) sont placés dans l'un des trois sandbox. Par défaut, les fichiers SWF locaux sont placés dans le sandbox Local/Système de fichiers. Les fichiers locaux qui réclament un accès réseau sont placés dans le Sandbox local/réseau. Les fichiers locaux enregistrés comme étant de confiance (via le Gestionnaire de paramètres ou un fichier de configuration) sont placés dans le Sandbox Approuvé local. (Dans Flash Player 7 et les versions antérieures, tous les fichiers locaux sont placés dans le Sandbox Approuvé local.)

Deux fichiers SWF placés dans le même sandbox peuvent interagir librement. Les derniers diagrammes présentent les interactions éventuelles des fichiers SWF avec les fichiers SWF issus d'autres sandbox et avec les systèmes de fichiers et serveurs.

Privilèges par défaut

A la figure 5, les flèches représentaient l'origine du fichier SWF. Dans la série de diagrammes suivants, les flèches illustrent cette fois les accès. Les flèches pointillées représentent le chargement des données et les flèches accentuées une programmation croisée. La figure 6 illustre les privilèges dont disposent les fichiers SWF qui arrivent dans les sandbox par défaut.

Affectations des sandbox par défaut et privilèges qui y sont disponibles

Figure 6. Affectations des sandbox par défaut et privilèges qui y sont disponibles

Par défaut, les fichiers SWF locaux sont placés dans le sandbox Local/Système de fichiers. A partir de ce Sandbox, les fichiers SWF peuvent lire les fichiers d'un système de fichiers local ou de chemins réseau UNC (avec la méthode XML.load() par exemple), mais ne peuvent en aucune manière communiquer avec Internet.

Les droits des fichiers SWF distants sont identiques à ceux accordés par Flash Player 7, sauf qu'ils ne peuvent plus charger de contenu local. Les fichiers SWF distants sont toujours placés dans un Sandbox correspondant à leur domaine d'origine. Depuis le Sandbox a.com, un fichier SWF peut lire (via XML.load() par exemple) sur le serveur de a.com et envoyer des données (via XML.send() par exemple) n'importe où sur Internet.

Autorisations des fichiers SWF distants

La figure 7 illustre les droits non disponibles par défaut des fichiers SWF distants, mais pouvant être accordés par des autorisations spécifiques.

Privilèges des fichiers SWF distants disponibles avec une autorisation

Figure 7. Privilèges des fichiers SWF distants disponibles avec une autorisation

Un fichier SWF provenant de a.com peut lire (via XML.load par exemple) sur le serveur de b.com si ce dernier présente un fichier de régulation qui autorise l'accès à partir de a.com ou de tous les domaines. Un fichier SWF provenant de a.com peut inter-coder un fichier SWF provenant de b.com (en appelant une méthode ActionScript dans le fichier SWF de b.com, par exemple) si le fichier SWF de b.com appelle System.security.allowDomain("a.com"). Ces autorisations étaient disponibles dans Flash Player 7 et n'ont pas changé dans Flash Player 8.

Par défaut, les fichiers SWF distants ne peuvent pas inter-coder les fichiers SWF locaux. Toutefois, les fichiers SWF Local/réseau et Approuvé local sont autorisés à accorder des autorisations de programmation croisée par des fichiers SWF distants, à l'aide de System.security.allowDomain(). Les fichiers SWF Local/Système de fichiers ne sont pas autorisés à accorder de telles autorisations car ils pourraient dans ce cas coopérer avec un fichier SWF distant pour lire les données du système de fichiers local et les envoyer à un serveur Web.

Privilèges des fichiers SWF Approuvé local

La figure 8 présente les droits illimités accordés aux fichiers SWF Approuvé local. Ces derniers peuvent lire les fichiers locaux, interagir avec n'importe quel serveur et programmer n'importe quel autre fichier SWF.

Privilèges des fichiers SWF Approuvé local

Figure 8. Privilèges des fichiers SWF Approuvé local

Autorisations des fichiers SWF Local/Système de fichiers

La figure 9 illustre les droits des fichiers SWF Local/Système de fichiers non disponibles par défaut, mais pouvant être accordés par des autorisations spéciales. Les fichiers SWF Local/Système de fichiers peuvent autoriser des fichiers SWF Local/Système de fichiers à les programmer, via System.security.allowDomain("*").

Privilèges de fichiers SWF Local/Système de fichiers disponibles avec une autorisation

Figure 9. Privilèges de fichiers SWF Local/Système de fichiers disponibles avec une autorisation

Notez que ces autorisations ne peuvent être accordées à des fichiers SWF Local/Système de fichiers qu'en accordant des autorisations à tous les domaines. Cette condition illustre le fait qu'accorder un accès aux fichiers SWF Local/Système de fichiers revient à accorder un accès à tout le monde puisque Flash Player ne peut pas déterminer l'origine d'un fichier SWF local.

Les autorisations ne peuvent pas être accordées aux fichiers SWF Local/Système de fichiers par des fichiers SWF distants ou Local/Réseau car cela permettrait à tous ces fichiers de coopérer pour lire les données d'un système de fichiers local, puis de les envoyer à un serveur Web.

En l'absence d'autorisation, les fichiers SWF Local/Système de fichiers sont seulement autorisés à charger les données de systèmes de fichiers locaux (via XML.load() par exemple).

Privilèges des fichiers SWF Local/Réseau

La figure 10 illustre les privilèges par défaut dont disposent les fichiers SWF locaux qui se sont déclarés eux-mêmes Local/Réseau plutôt que Local/Système de fichiers. En l'absence d'autorisation, les fichiers SWF Local/Réseau sont seulement autorisés à communiquer avec les autres fichiers SWF Local/Réseau et à envoyer des données aux serveurs (via XML.send() par exemple).

Privilèges des fichiers SWF Local/Réseau disponibles par défaut

Figure 10. Privilèges des fichiers SWF Local/Réseau disponibles par défaut

Autorisations des fichiers SWF Local/Réseau

La figure 11 illustre les droits des fichiers SWF Local/Réseau non disponibles par défaut, mais pouvant être accordés par des autorisations spéciales.

Privilèges des fichiers SWF Local/Réseau disponibles avec une autorisation

Figure 11. Privilèges des fichiers SWF Local/Réseau disponibles avec une autorisation

Un fichier SWF Local/Réseau est autorisé à lire (via XML.load par exemple) sur le serveur de a.com si ce dernier dispose d'un fichier de régulation qui autorise l'accès à partir de tous les domaines.

Un fichier SWF Local/Réseau peut inter-coder un fichier SWF provenant de a.com (en appelant une méthode ActionScript dans le fichier SWF de a.com, par exemple) si le fichier SWF de a.com appelle System.security.allowDomain("*"). De même, un fichier SWF Local/Réseau sera autorisé à inter-coder un fichier SWF Approuvé local si ce dernier appelle allowDomain("*").

Notez que ces autorisations ne peuvent être accordées à des fichiers SWF Local/Réseau qu'en accordant des autorisations à tous les domaines. Cette condition illustre le fait qu'accorder un accès aux fichiers SWF Local/Réseau revient à accorder un accès à tout le monde puisque Flash Player ne peut pas déterminer l'origine d'un fichier SWF local.

Aucune autorisation ne peut être accordée pour autoriser des fichiers SWF Local/Réseau à lire des fichiers locaux.

Résumé du flux de données

La figure 12 résument les flux de données possibles lorsqu'un ensemble maximal d'autorisations est en vigueur.

Résumé du flux de données

Figure 12. Résumé du flux de données

Grâce aux autorisations, des fichiers SWF Local/Réseau peuvent librement interagir avec des serveurs et des fichiers SWF distants. Ces autorisations permettent également aux fichiers SWF Approuvé local de communiquer librement avec des ressources réseau et vice versa.

Notez cependant que même avec le maximum d'autorisations, les données ne peuvent pas transiter des systèmes de fichiers locaux à Internet sans passer par un fichier SWF Approuvé local.