15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Sicherheit<br />

Skripterstellung zwischen Inhalten in unterschiedlichen Domänen<br />

Adobe AIR 1.0 und höher<br />

AIR-Anwendungen erhalten bei der Installation besondere Berechtigungen. Es ist wichtig, dass diese Berechtigungen<br />

nicht auf andere Inhalte übergehen, darunter Remote-Dateien und lokale Dateien, die nicht Teil der Anwendung sind.<br />

Die AIR-Sandboxbrücke<br />

Adobe AIR 1.0 und höher<br />

Normalerweise kann Inhalt aus anderen Domänen keine Skripts in anderen Domänen aufrufen. Um AIR-<br />

Anwendungen vor der versehentlichen Preisgabe von Informationen oder Kontrolle zu schützen, gelten die folgenden<br />

Beschränkungen für Inhalte in der Sicherheits-Sandbox application (Inhalte, die mit der Anwendung installiert<br />

werden):<br />

Code in der Anwendungs-Sandbox kann nicht durch Aufrufen der Security.allowDomain()-Methode mit<br />

anderen Sandboxen interagieren. Wenn diese Methode aus der Anwendungs-Sandbox aufgerufen wird, wird ein<br />

Fehler ausgegeben.<br />

Das Importieren von anwendungsfremden Inhalten in die Anwendungs-Sandbox durch Festlegen der<br />

LoaderContext.securityDomain-Eigenschaft oder der LoaderContext.applicationDomain-Eigenschaft<br />

wird verhindert.<br />

In einigen Fällen ist es jedoch erforderlich, dass die AIR-Hauptanwendung Inhalten aus einer Remote-Domäne den<br />

kontrollierten Zugriff auf Skripts in der AIR-Hauptanwendung ermöglicht oder umgekehrt. Zu diesem Zweck gibt es<br />

in der Laufzeitumgebung so genannte Sandboxbrücken, die als Schnittstelle zwischen zwei Sandboxen fungieren. Eine<br />

Sandboxbrücke kann die explizite Interaktion zwischen Remote- und Anwendungs-Sandboxen ermöglichen.<br />

Die Sandboxbrücke öffnet zwei Objekte, auf die sowohl geladene als auch ladende Skripts zugreifen können:<br />

Das parentSandboxBridge-Objekt ermöglicht, dass ladender Inhalt Eigenschaften und Funktionen für Skripts im<br />

geladenen Inhalt öffnet.<br />

Das childSandboxBridge-Objekt ermöglicht, dass geladener Inhalt Eigenschaften und Funktionen für Skripts im<br />

ladenden Inhalt öffnet.<br />

Objekte, die über die Sandboxbrücke geöffnet werden, werden durch Werte, nicht durch Verweise übergeben. Alle<br />

Daten werden serialisiert. Dies bedeutet, dass die von einer Seite der Brücke geöffneten Objekte nicht von der anderen<br />

Seite eingestellt werden können und dass geöffnete Objekte nicht typisiert sind. Des Weiteren lassen sich nur einfache<br />

Objekte und Funktionen öffnen; Sie können keine komplexen Objekte öffnen.<br />

Wenn untergeordneter Inhalt versucht, eine Eigenschaft des parentSandboxBridge-Objekts festzulegen, gibt die<br />

Laufzeitumgebung eine SecurityError-Ausnahme aus. Wenn übergeordneter Inhalt versucht, eine Eigenschaft des<br />

childSandboxBridge-Objekts festzulegen, gibt die Laufzeitumgebung eine SecurityError-Ausnahme aus.<br />

Beispiel für eine Sandboxbrücke (SWF)<br />

Adobe AIR 1.0 und höher<br />

In einer Musikshop-AIR-Anwendung sollen Remote-SWF-Dateien den Preis der Alben übermitteln, dabei sollen sie<br />

aber nicht angeben, ob es sich bei dem Preis um ein Sonderangebot handelt. Zu diesem Zweck stellt eine StoreAPI-<br />

Klasse eine Methode bereit, um den Preis anzugeben, der Angebotspreis wird jedoch verborgen. Eine Instanz dieser<br />

StoreAPI-Klasse wird der parentSandboxBridge-Eigenschaft des LoaderInfo-Objekts des Loader-Objekts, das die<br />

Remote-SWF-Datei lädt, zugewiesen.<br />

Der Code für den AIR-Musikshop sieht folgendermaßen aus:<br />

Letzte Aktualisierung 27.6.2012<br />

1151

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!