Sicherheits-SandboxenFlash Player 9 und höher, Adobe AIR 1.0 und höher Clientcomputer können individuelle Dateien mit Code, Inhalt und Daten aus verschiedenen Quellen abrufen, wie beispielsweise externe Websites, lokale Dateisysteme oder installierte AIR-Anwendungen. Die Flash Player- und AIR-Laufzeitumgebungen weisen Codedateien und andere Ressourcen, wie gemeinsam genutzte Objekte, Bitmaps, Sounds, Videos und Datendateien, den Sicherheits-Sandboxen individuell zu, und zwar auf Grundlage ihres Ursprungs beim Laden. In den folgenden Abschnitten werden die von den Laufzeitumgebungen durchgesetzten Regeln beschrieben, die bestimmen, auf welche Elemente Code oder Inhalt, der in einer bestimmten Sandbox ausgeführt wird, zugreifen kann. Weitere Informationen zur Flash Player-Sicherheit finden Sie im Abschnitt „Sicherheit“ des Flash Player Developer Center unter www.adobe.com/go/devnet_security_de. Remote-SandboxenDie Flash Player- und AIR-Laufzeitumgebungen klassifizieren Elemente (einschließlich SWF-Dateien) aus dem Internet in separate Sandboxes, die der jeweiligen Ursprungsdomäne entsprechen. Beispielsweise werden Elemente, die aus example.com geladen werden, in einer anderen Sicherheits-Sandbox platziert als Elemente, die aus foo.org geladen werden. Standardmäßig ist diesen Dateien der Zugriff auf andere Ressourcen auf ihrem eigenen Server gestattet. Remote-SWF-Dateien kann über explizite Website- und Autorberechtigungen, z. B. URL-Richtliniendateien und die Methode Security.allowDomain(), der Zugriff auf weitere Daten aus anderen Domänen gestattet werden. Weitere Informationen finden Sie unter Kontrolloptionen für Websites (Richtliniendateien) und Kontrolloptionen für Autoren (Entwickler). Remote-SWF-Dateien können keine lokalen Daten oder Ressourcen laden. Weitere Informationen zur Flash Player-Sicherheit finden Sie im Abschnitt „Sicherheit“ des Flash Player Developer Center unter www.adobe.com/go/devnet_security_de. Lokale SandboxenAls lokale Datei werden alle Dateien bezeichnet, die über das Protokoll file: oder einen UNC-Pfad (Universal Naming Convention) referenziert werden. Lokale SWF-Dateien befinden sich in einer der vier folgenden lokalen Sandboxen:
Der Datenaustausch zwischen den Sandboxen „local-with-networking“ und „local-with-filesystem“ sowie zwischen der Sandbox „local-with-filesystem“ und Remote-Sandboxen ist streng verboten. Eine Genehmigung für einen solchen Datenaustausch kann weder von einer in Flash Player ausgeführten Anwendung, noch durch einen Benutzer oder Administrator erteilt werden. Cross-Scripting zwischen lokalen HTML-Dateien und lokalen SWF-Dateien, z. B. mit der ExternalInterface-Klasse, ist nur dann möglich, wenn sich sowohl die HTML- als auch die SWF-Datei in der „local-trusted“-Sandbox befinden. Der Grund hierfür ist, dass sich die lokalen Sicherheitsmodelle für Browser vom lokalen Sicherheitsmodell von Flash Player unterscheiden. SWF-Dateien in der „local-with-networking“-Sandbox können keine SWF-Dateien in der „local-with-filesystem“-Sandbox laden. SWF-Dateien in der „local-with-networking“-Sandbox können keine SWF-Dateien in der „local-with-filesystem“-Sandbox laden. Die AIR-Anwendungs-SandboxDie Adobe AIR-Laufzeitumgebung erweitert das Sicherheits-Sandbox-Modell von Flash Player um eine zusätzliche Sandbox, die sogenannte Anwendungs-Sandbox. Dateien, die als Teil einer AIR-Anwendung installiert wurden, werden in die Anwendungs-Sandbox geladen. Für alle anderen von der Anwendung geladenen Dateien gelten Sicherheitseinschränkungen gemäß den Richtlinien des regulären Flash Player-Sicherheitsmodells. Wenn eine Anwendung installiert wird, werden alle Dateien, die im AIR-Paket enthalten sind, in einem Anwendungsverzeichnis auf dem Computer des Benutzers installiert. Entwickler können im Code über das app:/-URL-Schema (siehe URI-Schemas) auf dieses Verzeichnis verweisen. Alle Dateien in der Anwendungsverzeichnisstruktur werden der Anwendungs-Sandbox zugewiesen, wenn die Anwendung ausgeführt wird. Inhalt in der Anwendungs-Sandbox ist mit allen Berechtigungen versehen, die für eine AIR-Anwendung verfügbar sind, darunter auch für die Interaktion mit dem lokalen Dateisystem. Viele AIR-Anwendungen verwenden nur diese lokal installierten Dateien, um die Anwendung auszuführen. AIR-Anwendungen sind jedoch nicht auf die Dateien im Anwendungsverzeichnis beschränkt; sie können jeden Dateityp von jeder beliebigen Quelle laden. Dazu gehören lokale Dateien auf dem Computer des Benutzers sowie Dateien aus verfügbaren externen Quellen, zum Beispiel von einem lokalen Netzwerk oder aus dem Internet. Der Dateityp hat keinen Einfluss auf Sicherheitsbeschränkungen; geladene HTML-Dateien haben dieselben Sicherheitsberechtigungen wie geladene SWF-Dateien aus derselben Quelle. Inhalt in der Anwendungs-Sandbox hat Zugriff auf AIR-APIs, auf die Inhalt in anderen Sandboxen nicht zugreifen kann. Zum Beispiel ist die air.NativeApplication.nativeApplication.applicationDescriptor-Eigenschaft, die den Inhalt der Anwendungsdeskriptordatei für eine Anwendung zurückgibt, auf den Inhalt in der Sicherheits-Sandbox der Anwendung beschränkt. Ein weiteres Beispiel einer beschränkten API ist die FileStream-Klasse, die Methoden für das Lesen und Schreiben im lokalen Dateisystem enthält. ActionScript-APIs, die nur für Inhalt in der Sicherheits-Sandbox der Anwendung zur Verfügung stehen, sind im Handbuch ActionScript 3.0 Reference for Adobe Flash Platform mit dem AIR-Logo gekennzeichnet. Wenn Sie diese APIs in anderen Sandboxen verwenden, gibt die Laufzeitumgebung eine SecurityError-Ausnahme aus. Bei HTML-Inhalt (in einem HTMLLoader-Objekt) sind alle AIR-JavaScript-APIs (diejenigen, die über die window.runtime-Eigenschaft verfügbar sind, oder über das air-Objekt, wenn die Datei „AIRAliases.js“ verwendet wird) für Inhalt in der Anwendungs-Sandbox verfügbar. HTML-Inhalt in anderen Sandboxen hat keinen Zugriff auf die window.runtime-Eigenschaft, deshalb kann dieser Inhalt nicht auf die AIR- oder Flash Player-APIs zugreifen. Für Inhalt, der in der AIR-Anwendungs-Sandbox ausgeführt wird, gelten die folgenden zusätzlichen Einschränkungen:
Einschränkungen für JavaScript in AIRAnders als Inhalt in der Anwendungs-Sandbox kann JavaScript-Inhalt in einer anwendungsfremden Sandbox jederzeit die eval()-Funktion aufrufen, um dynamisch generierten Code auszuführen. Es gelten jedoch Einschränkungen für JavaScript, das in einer anwendungsfremden Sicherheits-Sandbox innerhalb von AIR ausgeführt wird. Dazu gehört Folgendes:
Ausführliche Informationen finden Sie unter Codebeschränkungen für Inhalt in unterschiedlichen Sandboxen. Einstellen des Sandbox-Typs von lokalen SWF-DateienEin Endbenutzer oder der Administrator eines Computers kann festlegen, dass eine lokale SWF-Datei als vertrauenswürdig eingestuft wird und ihr somit das Laden von Daten aus allen Domänen (lokal und remote) gestatten. Dies wird in den Verzeichnissen „Global Flash Player Trust“ und „User Flash Player Trust“ festgelegt. Weitere Informationen finden Sie unter Kontrolloptionen für Administratoren und Kontrolloptionen für Benutzer. Weitere Informationen zu lokalen Sandboxen finden Sie unter Lokale Sandboxen. Adobe Flash ProfessionalSie können eine SWF-Datei so konfigurieren, dass sie entweder der „local-with-filesystem“-Sandbox oder der „local-with-networking“-Sandbox zugewiesen wird, indem Sie die Veröffentlichungseinstellungen des Dokuments im Authoring-Tool festlegen. Adobe FlexSie können eine SWF-Datei so konfigurieren, dass sie entweder der „local-with-filesystem“-Sandbox oder der „local-with-networking“-Sandbox zugewiesen wird, indem Sie das use-network-Flag im Adobe Flex-Compiler festlegen. Weitere Informationen finden Sie unter „About the application compiler options“ im Handbuch Building and Deploying Adobe Flex 3 Applications. Security.sandboxType-EigenschaftEin Autor einer SWF-Datei kann mit der schreibgeschützten statischen Security.sandboxType-Eigenschaft den Sandbox-Typ ermitteln, dem die Flash Player- oder AIR-Laufzeitumgebung die SWF-Datei zugewiesen hat. Die Security-Klasse enthält Konstanten, die mögliche Werte der Eigenschaft Security.sandboxType darstellen:
|
|