In den folgenden Diagrammen werden die bisher beschriebenen Berechtigungen für die lokale Sicherheit übersichtlich dargestellt.
Alle SWF-Dateien werden beim Laden in Flash Player in einer Sandbox platziert. Abbildung 5 zeigt, wie SWF-Dateien je nach Ursprung verschiedenen Sandboxen zugewiesen werden. SWF-Dateien aus dem Netzwerk, wie beispielsweise a.com und b.com, werden immer in einer Sandbox platziert, die der Ursprungsdomäne entspricht.
Abbildung 5. Sandbox-Zuweisungen auf Grundlage der SWF-Quelle
SWF-Dateien aus lokalen Quellen (lokale Dateisysteme oder UNC-Netzwerkpfade) werden in einer von drei Sandboxen platziert. Standardmäßig wird eine lokale SWF-Datei in der Sandbox Lokal mit Dateisystem platziert. Lokale Dateien, die den Netzwerkzugriff angefordert haben, werden in der Sandbox Lokal mit Netzwerk platziert. Lokale Dateien, die als vertrauenswürdig eingestuft wurden (im Einstellungsmanager oder mithilfe von Konfigurationsdateien), werden in der Sandbox Lokal vertrauenswürdig platziert. (In Flash Player 7 und früheren Versionen werden alle lokale Dateien in der Sandbox Lokal vertrauenswürdig platziert.)
Zwischen SWF-Dateien in derselben Sandbox ist eine uneingeschränkte Interaktion möglich. In den Diagrammen weiter unten wird veranschaulicht, wie SWF-Dateien mit den SWFs aus anderen Sandboxen sowie mit Dateisystemen und Servern interagieren können.
Die Pfeile in Abbildung 5 zeigen die SWF-Quelle. In den folgenden Diagrammen veranschaulichen die Pfeile dagegen den Zugriff. Gestrichelte Pfeile zeigen das Laden von Daten und Konturpfeile das Cross-Scripting. Abbildung 6 zeigt die Berechtigungen der SWF-Dateien, die sich in Standard-Sandboxen befinden.
Abbildung 6. Standardmäßige Sandbox-Zuweisungen und die Standardberechtigungen dieser Sandboxen
Standardmäßig werden lokale SWF-Dateien in der Sandbox Lokal mit Dateisystem platziert. SWF-Dateien in dieser Sandbox können Daten aus Dateien in lokalen Dateisystemen oder UNC-Netzwerkpfaden lesen, beispielsweise mit XML.load(), aber sie können nicht mit dem Internet kommunizieren.
Die Berechtigungen für Remote-SWFs unterscheiden sich nicht von Flash Player 7, mit der Ausnahme, dass Remote-SWFs nicht mehr die Berechtigung zum Laden von lokalem Inhalt haben. Remote-SWFs werden immer in einer Sandbox platziert, die der Ursprungsdomäne entspricht. Eine SWF-Datei in der Sandbox a.com kann Daten vom Server unter a.com lesen, beispielsweise mit XML.load(), und Daten an einen beliebigen Ort im Internet senden, zum Beispiel mit XML.send().
Abbildung 7 zeigt Berechtigungen für Remote-SWFs, die zwar nicht standardmäßig verfügbar sind, aber explizit zugewiesen werden können.
Abbildung 7. Explizite Berechtigungen für Remote-SWFs
Eine SWF-Datei unter a.com kann Daten vom Server unter b.com lesen, beispielsweise mit XML.load, wenn unter b.com eine Richtliniendatei vorhanden ist, die den Zugriff von a.com oder von allen Domänen erlaubt. Eine SWF-Datei unter a.com kann ein Cross-Scripting für eine SWF-Datei unter b.com vornehmen (beispielsweise durch Aufruf einer ActionScript-Methode in der SWF-Datei unter b.com), wenn die SWF-Datei unter b.com die Funktion System.security.allowDomain("a.com") aufruft. Diese Berechtigungen waren bereits in Flash Player 7 verfügbar und haben sich in Flash Player 8 nicht geändert.
Standardmäßig können Remote-SWFs kein Cross-Scripting für lokale SWFs durchführen. SWF-Dateien in den Sandboxen Lokal mit Netzwerk und Lokal vertrauenswürdig können Remote-SWFs jedoch die Berechtigung für das Cross-Scripting erteilen, und zwar mithilfe von System.security.allowDomain(). SWF-Dateien in der Sandbox Lokal mit Dateisystem können eine derartige Berechtigung nicht erteilen, da dadurch eine Situation entstehen würde, in der eine SWF-Datei in der Sandbox Lokal mit Dateisystem und eine Remote-SWF so zusammenwirken könnten, dass Daten aus einem lokalen Dateisystem gelesen und an einen Webserver gesendet werden.
Abbildung 8 zeigt die uneingeschränkten Berechtigungen, die lokalen vertrauenswürdigen SWF-Dateien erteilt werden. Lokale vertrauenswürdige SWF-Dateien können Daten aus lokalen Dateien lesen, mit jedem Server interagieren und ein Cross-Scripting mit jeder anderen SWF-Datei durchführen.
Abbildung 8. Berechtigungen für lokale vertrauenswürdige SWF-Dateien
Abbildung 9 zeigt Berechtigungen für SWF-Dateien in der Sandbox Lokal mit Dateisystem, die zwar nicht standardmäßig verfügbar sind, aber explizit zugewiesen werden können. Lokale vertrauenswürdige SWF-Dateien können mithilfe von System.security.allowDomain("*") das Cross-Scripting mit SWF-Dateien in der Sandbox Lokal mit Dateisystem zulassen.
Abbildung 9. Explizite Berechtigungen für SWF-Dateien in der Sandbox "Lokal mit Dateisystem"
Beachten Sie, dass Berechtigungen den SWF-Dateien in der Sandbox Lokal mit Dateisystem nur zugewiesen werden können, indem sie allen Domänen zugewiesen werden. Die Anforderung in Bezug auf alle Domänen entsteht dadurch, dass der Zugriff für SWF-Dateien in der Sandbox Lokal mit Dateisystem dem uneingeschränkten Zugriff entspricht, da Flash Player den Ursprung einer lokalen SWF-Datei nicht ermitteln kann.
Remote-SWFs und SWFs in der Sandbox Lokal mit Netzwerk können Dateien in der Sandbox Lokal mit Dateisystem keine Berechtigungen erteilen, da dadurch eine Situation entstehen würde, in der eine SWF-Datei in der Sandbox Lokal mit Dateisystem und eine Remote-SWF oder eine SWF in der Sandbox Lokal mit Netzwerk so zusammenwirken könnten, dass Daten aus einem lokalen Dateisystem gelesen und an einen Webserver gesendet werden.
Wenn keine expliziten Berechtigungen erteilt wurden, können SWF-Dateien in der Sandbox Lokal mit Dateisystem nur Daten aus lokalen Dateisystemen laden, beispielsweise mit XML.load().
Abbildung 10 zeigt die Standardberechtigungen für lokale SWF-Dateien, die sich in der Sandbox Lokal mit Netzwerk und nicht in der Sandbox Lokal mit Dateisystem befinden. Wenn keine expliziten Berechtigungen erteilt wurden, können SWF-Dateien in der Sandbox Lokal mit Netzwerk nur mit SWF-Dateien in derselben Sandbox kommunizieren und Daten an Server senden, beispielsweise mit XML.send().
Abbildung 10. Standardberechtigungen für SWF-Dateien in der Sandbox "Lokal mit Netzwerk"
Abbildung 11 zeigt Berechtigungen für SWF-Dateien in der Sandbox Lokal mit Netzwerk, die zwar nicht standardmäßig verfügbar sind, aber explizit zugewiesen werden können.
Abbildung 11. Explizite Berechtigungen für SWF-Dateien in der Sandbox "Lokal mit Netzwerk"
Eine SWF-Datei in der Sandbox Lokal mit Netzwerk ist berechtigt, Daten vom Server unter a.com zu lesen, beispielsweise mit XML.load(). Voraussetzung hierfür ist, dass sich unter a.com eine Richtliniendatei befindet, die den Zugriff von allen Domänen aus zulässt.
Eine SWF-Datei in der Sandbox Lokal mit Netzwerk kann ein Cross-Scripting mit einer SWF-Datei unter a.com durchführen (beispielsweise durch Aufruf einer ActionScript-Methode in der SWF-Datei unter a.com), wenn die SWF-Datei unter a.com die Funktion System.security.allowDomain("*") aufruft. Auf ähnliche Weise kann eine SWF-Datei in der Sandbox Lokal mit Netzwerk ein Cross-Scripting für eine lokale vertrauenswürdige SWF-Datei ausführen, wenn diese Datei allowDomain("*") aufruft.
Beachten Sie, dass Berechtigungen den SWF-Dateien in der Sandbox Lokal mit Netzwerk nur zugewiesen werden können, indem sie allen Domänen zugewiesen werden. Die Anforderung in Bezug auf alle Domänen entsteht dadurch, dass der Zugriff für SWF-Dateien in der Sandbox Lokal mit Netzwerk dem uneingeschränkten Zugriff entspricht, da Flash Player den Ursprung einer lokalen SWF-Datei nicht ermitteln kann.
Es ist keine Berechtigung verfügbar, die einer SWF-Datei in der Sandbox Lokal mit Netzwerk das Lesen aus lokalen Dateien ermöglicht.
Abbildung 12 zeigt, welche Datenflüsse möglich sind, wenn die maximale Berechtigungsmenge vorhanden ist.
Abbildung 12. Übersicht über den Datenfluss
Mithilfe von Berechtigungen kann eine vollständige Interoperabilität zwischen SWF-Dateien in der Sandbox Lokal mit Netzwerk und Remote-SWFs sowie Servern erzielt werden. Außerdem können lokale vertrauenswürdige SWF-Dateien über Berechtigungen frei mit Netzwerkressourcen kommunizieren und umgekehrt.
Doch selbst wenn die maximale Berechtigungsmenge eingestellt wurde, ist ein Datenfluss von lokalen Dateisystemen zum Internet nur über den Umweg einer lokalen vertrauenswürdigen SWF-Datei möglich.