Überblick über die Flash Player-Sicherheit

Ein wesentlicher Teil der Flash Player-Sicherheit basiert auf der Ursprungsdomäne der geladenen SWF-Dateien, Medien und anderen Daten. Eine SWF-Datei aus einer bestimmten Internetdomäne, beispielsweise www.example.com, kann jederzeit auf alle Daten aus dieser Domäne zugreifen. Diese Daten werden in der gleichen Sicherheitsgruppe abgelegt, die auch als Sicherheits-Sandbox bezeichnet wird. (Weitere Informationen finden Sie unter Sicherheits-Sandboxen.)

Eine SWF-Datei kann also andere SWF-, Bitmap-, Audio- und Textdateien sowie andere Daten aus der eigenen Domäne laden. Darüber hinaus ist jederzeit ein Cross-Scripting zwischen SWF-Dateien aus der gleichen Domäne zulässig, sofern beide Dateien mit ActionScript 3.0 geschrieben wurden. Als Cross-Scripting wird die Möglichkeit bezeichnet, dass eine SWF-Datei mittels ActionScript auf die Eigenschaften, Methoden und Objekte in einer anderen SWF-Datei zugreift.

Cross-Scripting wird jedoch nicht zwischen SWF-Dateien unterstützt, von denen eine mit ActionScript 3.0 und die andere mit früheren Versionen von ActionScript geschrieben wurde. Diese Dateien können jedoch über die LocalConnection-Klasse miteinander kommunizieren. Weiterhin ist ein Cross-Scripting zwischen einer SWF-Datei und mit ActionScript 3.0 geschriebenen SWF-Dateien aus anderen Domänen standardmäßig untersagt. Der Zugriff kann jedoch durch einen Aufruf der Methode Security.allowDomain() in der geladenen SWF-Datei ermöglicht werden. Weitere Informationen finden Sie unter Cross-Scripting.

Standardmäßig gelten die folgenden allgemeinen Sicherheitsrichtlinien:

  • Ressourcen in der gleichen Sicherheits-Sandbox können immer aufeinander zugreifen.

  • SWF-Dateien in einer Remote-Sandbox können nie auf lokale Dateien und Daten zugreifen.

Flash Player betrachtet die folgenden Internetadressen als einzelne Domänen und richtet für jede eine einzelne Sicherheits-Sandbox ein:

  • http://example.com

  • http://www.example.com

  • http://store.example.com

  • https://www.example.com

  • http://192.0.34.166

Auch wenn eine benannte Domäne, wie http://example.com, einer bestimmten IP-Adresse zugeordnet werden kann (z. B. http://192.0.34.166), richtet Flash Player separate Sicherheits-Sandboxen für beide Adressen ein.

Es gibt zwei allgemeine Methoden, über die der Entwickler einer SWF-Datei Zugriff auf Datenelemente gewähren kann, die sich in anderen Sandboxen als die SWF-Datei befinden:

Im Flash Player-Sicherheitsmodell wird zwischen dem Laden von Inhalten und dem Extrahieren von und Zugreifen auf Daten unterschieden. Als Inhalt werden Medien bezeichnet, darunter visuelle Medien, die Flash Player wiedergeben kann, Audio, Video oder eine SWF-Datei mit angezeigten Medien. Daten sind als etwas definiert, auf das nur über ActionScript-Code zugegriffen werden kann. Inhalte und Daten werden auf unterschiedliche Weise geladen.

  • Laden von Inhalten: Sie können Inhalte mit Klassen laden, z. B. mit der Loader-, Sound- und NetStream-Klasse.

  • Extrahieren von Daten: Sie können Daten aus geladenen Medien mithilfe von Bitmap-Objekten, der Methode BitmapData.draw(), der Eigenschaft Sound.id3 oder der Methode SoundMixer.computeSpectrum() extrahieren.

  • Zugreifen auf Daten: Sie können direkt auf Daten zugreifen, indem Sie diese mittels Klassen, wie der URLStream-, URLLoader-, Socket- und XMLSocket-Klasse, aus einer externen Datei (z. B. einer XML-Datei) laden.

Das Flash Player-Sicherheitsmodell definiert unterschiedliche Richtlinien für das Laden von Inhalten und den Zugriff auf Daten. Im Allgemeinen gelten weniger Einschränkungen für das Laden von Inhalten als für den Zugriff auf Daten.

Normalerweise können Inhalte (SWF-Dateien, Bitmaps, MP3-Dateien und Videos) von allen Speicherorten geladen werden. Befindet sich der Inhalt jedoch in einer anderen Domäne als die ladende SWF-Datei, wird er in einer separaten Sicherheits-Sandbox partitioniert.

Für das Laden von Inhalten gelten nur wenige Einschränkungen:

  • Standardmäßig werden lokale SWF-Dateien (Dateien, die nicht aus dem Netzwerk, sondern z. B. von der Festplatte des Benutzers geladen werden) in der „local-with-filesystem“-Sandbox (local-with-filesystem) klassifiziert. Dateien in dieser Sandbox können keine Inhalte aus dem Netzwerk laden. Weitere Informationen finden Sie unter Lokale Sandboxen.

  • Real-Time Messaging Protocol-Server (RTMP) können den Zugriff auf Inhalte einschränken. Weitere Informationen finden Sie unter Über RTMP-Server bereitgestellte Inhalte.

Handelt es sich bei dem geladenen Medium um eine Grafik, Audio oder Video, kann eine SWF-Datei, die sich nicht in der gleichen Sicherheits-Sandbox befindet, nur auf die Daten (z. B. Pixel- und Sounddaten) zugreifen, wenn die Domäne dieser SWF-Datei in der Ursprungsdomäne der Medien in eine URL-Richtliniendatei aufgenommen wurde. Weitere Informationen finden Sie unter Zugriff auf geladene Medien als Daten.

Weitere Formen von geladenen Daten sind z. B. Text- oder XML-Dateien, die mit einem URLLoader-Objekt geladen werden. Auch in diesem Fall muss der Zugriff auf Daten in einer anderen Sicherheits-Sandbox mittels einer URL-Richtliniendatei in der Ursprungsdomäne genehmigt werden. Weitere Informationen finden Sie unter Verwenden von URLLoader von URLStream.