Steuerung der Berechtigungen

Flash Player 9 und höher, Adobe AIR 1.0 und höher

Das Sicherheitsmodell von Flash Player zur Clientlaufzeit wurde um Ressourcen konzipiert, bei denen es sich um Objekte handelt, wie SWF-Dateien, lokale Daten und Internet-URLs. Stakeholders (Interessengruppen) sind die Eigentümer oder die Benutzer dieser Ressourcen. Stakeholders haben die Kontrolle (Sicherheitseinstellungen) über ihre eigenen Ressourcen und jeder Ressource sind vier Stakeholders zugeordnet. Flash Player erzwingt eine strikte Autoritätshierarchie für diese Kontrollen. Dies wird in der folgenden Abbildung verdeutlicht:

Autoritätshierarchie
Hierarchie der Sicherheitskontrollen

Dies bedeutet beispielsweise, dass die Einschränkung des Zugriffs auf eine Ressource durch einen Administrator von keinem anderen Stakeholder außer Kraft gesetzt werden kann.

Bei AIR-Anwendungen gelten diese Berechtigungssteuerungen nur für Inhalt, der außerhalb der AIR-Anwendungs-Sandbox ausgeführt wird.

Kontrolloptionen für Administratoren

Der Administrator eines Computers (ein Benutzer, der sich mit Administratorrechten angemeldet hat) kann Flash Player-Sicherheitseinstellungen anwenden, die sich auf alle Benutzer des Computers auswirken. In einer privaten Umgebung, beispielsweise bei einem Heimcomputer, gibt es in der Regel nur einen Benutzer, der somit auch administrativen Zugriff hat. Auch in einer Unternehmensumgebung können bestimmte Benutzer Administratorrechte auf einem Computer haben.

Es gibt zwei Arten von Kontrollmöglichkeiten für Administratoren:

  • Die Datei „mms.cfg“

  • Das Global Flash Player Trust-Verzeichnis

Die Datei „mms.cfg“

Die Datei „mms.cfg“ ist eine Textdatei, in der Administratoren den Zugriff auf verschiedene Funktionen erteilen oder einschränken können. Beim Starten liest Flash Player die Sicherheitseinstellungen in dieser Datei und verwendet sie zum Einschränken von Funktionsmerkmalen. Die Datei „mms.cfg“ umfasst Einstellungen, mit denen Administratoren Dinge wie Sicherheitseinstellungen, die lokale Dateisicherheit, Socketverbindungen usw. verwalten können.

Eine SWF-Datei kann auf einige Informationen zu den Funktionen zugreifen, die durch Aufrufen der Eigenschaften Capabilities.avHardwareDisable und Capabilities.localFileReadDisable deaktiviert wurden. Jedoch können die meisten Einstellungen in der Datei „mms.cfg“ nicht mit ActionScript abgefragt werden.

Um von der Anwendung unabhängige Richtlinien für Sicherheit und Privatsphäre eines Computers durchzusetzen, darf die Datei „mms.cfg“ nur von Systemadministratoren geändert werden. Die Datei „mms.cfg“ wird nicht von den Installationsprogrammen von Anwendungen verwendet. Obwohl ein Installationsprogramm, das mit den Administratorrechten ausgeführt wird, den Inhalt der Datei „mms.cfg“ modifizieren könnte, betrachtet Adobe eine solche Nutzung als Vertrauensbruch gegenüber dem Benutzer und rät den Entwicklern von Installationsprogrammen, die Datei „mms.cfg“ niemals zu modifizieren.

Die Datei „mms.cfg“ wird unter folgendem Pfad gespeichert:

  • Windows: system \Macromed\Flash\mms.cfg

    (beispielsweise C:\WINDOWS\system32\Macromed\Flash\mms.cfg)

  • Mac: app support /Macromedia/mms.cfg

    (beispielsweise /Library/Application Support/Macromedia/mms.cfg)

Weitere Informationen zu der Datei „mms.cfg“ finden Sie im Administratorhandbuch zu Flash Player unter www.adobe.com/go/flash_player_admin_de .

Das Global Flash Player Trust-Verzeichnis

Benutzer mit Administratorrechten und Installationsprogramme können bestimmte lokale SWF-Dateien als vertrauenswürdig für alle Benutzer einstufen. Diese SWF-Dateien werden der lokalen vertrauenswürdigen Sandbox (local-trusted) zugeordnet. Sie können mit allen anderen SWF-Dateien interagieren und von allen Speicherorten (remote oder lokal) Daten laden. Dateien werden im Global Flash Player Trust-Verzeichnis unter folgendem Pfad als vertrauenswürdig eingestuft:

  • Windows: system \Macromed\Flash\FlashPlayerTrust

    (beispielsweise C:\WINDOWS\system32\Macromed\Flash\FlashPlayerTrust)

  • Mac: app support /Macromedia/FlashPlayerTrust

    (beispielsweise /Library/Application Support/Macromedia/FlashPlayerTrust)

Das Flash Player Trust-Verzeichnis kann eine beliebige Anzahl von Textdateien enthalten, die jeweils vertrauenswürdige Pfade (ein Pfad pro Zeile) enthalten. Jeder Pfad kann eine einzelne SWF-Datei, eine HTML-Datei oder ein Verzeichnis sein. Kommentarzeilen beginnen mit dem # -Symbol. Eine Flash Player Trust-Konfigurationendatei mit dem folgenden Text stuft beispielsweise alle Dateien im angegebenen Verzeichnis und allen Unterverzeichnissen als vertrauenswürdig ein:

# Trust files in the following directories: 
C:\Documents and Settings\All Users\Documents\SampleApp

Die in einer Trust-Konfigurationsdatei aufgeführten Pfade müssen immer lokale Pfade oder SMB-Netzwerkpfade sein. Ein HTTP-Pfad in einer Trust-Konfigurationsdatei wird ignoriert, denn es können nur lokale Dateien als vertrauenswürdig eingestuft werden.

Um Konflikte zu vermeiden, benennen Sie jede Trust-Konfigurationsdatei entsprechend der installierten Anwendung und verwenden Sie die Dateinamenserweiterung „.cfg“.

Als Entwickler, der eine lokal ausgeführte SWF-Datei über ein Installationsprogramm verteilt, können Sie mithilfe des Installationsprogramms eine Konfigurationsdatei in das Global Flash Player Trust-Verzeichnis einfügen und somit der von Ihnen verteilten Datei alle notwendigen Rechte erteilen. Dazu muss das Installationsprogramm von einem Benutzer mit Administratorrechten ausgeführt werden. Im Gegensatz zur Datei „mms.cfg“ darf das Global Flash Player Trust-Verzeichnis verwendet werden, um Installationsprogrammen vertrauenswürdige Zugriffsrechte zu erteilen. Sowohl Benutzer mit Administratorrechten als auch Installationsprogramme können mit dem Global Flash Player Trust-Verzeichnis vertrauenswürdige lokale Anwendungen zuweisen.

Es gibt auch Flash Player Trust-Verzeichnisse für einzelne Benutzer (siehe Kontrolloptionen für Benutzer ).

Kontrolloptionen für Benutzer

Flash Player bietet drei Mechanismen zum festlegen von Berechtigungen für verschiedene Benutzerebenen: die Einstellungs-UI, den Einstellungsmanager und das User Flash Player Trust-Verzeichnis.

Einstellungs-UI und Einstellungsmanager

Die Einstellungs-UI ist ein schneller, interaktiver Mechanismus zum Konfigurieren der Einstellungen für eine bestimmte Domäne. Der Einstellungsmanager weist eine wesentlich detailliertere Schnittstelle auf und bietet die Möglichkeit, globale Änderungen vorzunehmen, die sich auf die Zugriffsrechte vieler oder aller Domänen auswirken. Wenn eine SWF-Datei eine neue Berechtigung anfordert, die Laufzeitentscheidungen hinsichtlich der Sicherheit oder Privatsphäre erfordert, werden Dialogfelder angezeigt, in denen Benutzer bestimmte Flash Player-Einstellungen anpassen können.

Der Einstellungsmanager und die Einstellungs-UI bieten sicherheitsbezogene Optionen wie Kamera- und Mikrofoneinstellungen, gemeinsame Objektspeichereinstellungen, Einstellungen für ältere Inhalte usw. Weder der Einstellungsmanager noch die Einstellungs-UI stehen für AIR-Anwendungen zur Verfügung.

Hinweis: Einstellungen, die Sie in der Datei „mms.cfg“ vornehmen (siehe Kontrolloptionen für Administratoren ), werden im Einstellungsmanager nicht widergespiegelt.

Weitere Informationen zum Einstellungsmanager finden Sie unter www.adobe.com/go/settingsmanager_de .

User Flash Player Trust-Verzeichnis

Benutzer und Installationsprogramme können bestimmte lokale SWF-Dateien als vertrauenswürdig einstufen. Diese SWF-Dateien werden der lokalen vertrauenswürdigen Sandbox (local-trusted) zugeordnet. Sie können mit allen anderen SWF-Dateien interagieren und von allen Speicherorten (remote oder lokal) Daten laden. Ein Benutzer stuft eine Datei im User Player Trust-Verzeichnis als vertrauenswürdig ein. Dies ist das gleiche Verzeichnis wie der Speicherbereich für gemeinsam verwendete Flash-Objekte an den folgenden Speicherorten (die Speicherorte gelten für den aktuellen Benutzer):

  • Windows: app data\Macromedia\Flash Player\#Security\FlashPlayerTrust

    (beispielsweise C:\Dokumente und Einstellungen\<Benutzername>\Application Data\Macromedia\Flash Player\#Security\FlashPlayerTrust unter Windows XP oder C:\Users\<Benutzername>\AppData\Roaming\Macromedia\Flash Player\#Security\FlashPlayerTrust unter Windows Vista)

    In Windows ist der Ordner „Application Data“ standardmäßig ausgeblendet. Klicken Sie zum Anzeigen ausgeblendeter Ordner und Dateien auf „Arbeitsplatz“, um den Windows-Explorer zu öffnen. Wählen Sie dann „Extras“ > „Ordneroptionen“ und anschließend die Registerkarte „Ansicht“ aus. Aktivieren Sie auf der Registerkarte „Ansicht“ das Kontrollkästchen „Alle Dateien und Ordner anzeigen“.

  • Mac: app data/Macromedia/Flash Player/#Security/FlashPlayerTrust

    (beispielsweise /Users/<Benutzername>/Library/Preferences/Macromedia/Flash Player/#Security/FlashPlayerTrust)

    Diese Einstellungen wirken sich nur auf den aktuellen Benutzer aus, nicht auf andere Benutzer, die sich am Computer anmelden. Installiert ein Benutzer ohne Administratorrechte eine Anwendung in seinem eigenen Bereich des Systems, lässt das User Flash Player Trust-Verzeichnis das Installationsprogramm die Anwendung für diesen Benutzer als vertrauenswürdig registrieren.

    Als Entwickler, der eine lokal ausgeführte SWF-Datei über ein Installationsprogramm verteilt, können Sie über das Installationsprogramm eine Konfigurationsdatei in das User Flash Player Trust-Verzeichnis einfügen und somit der von Ihnen verteilten Datei alle notwendigen Rechte erteilen. Auch in dieser Situation wird das User Flash Player Trust-Verzeichnis als eine Kontrolloption für den Benutzer gewertet, da es von einem Benutzerereignis (Installation) initialisiert wird.

    Weiterhin gibt es ein Global Flash Player Trust-Verzeichnis, das von Benutzern mit Administratorrechten oder von Installationsprogrammen verwendet wird, um eine Anwendung für alle Benutzer eines Computers zu registrieren (siehe Kontrolloptionen für Administratoren ).

Kontrolloptionen für Websites (Richtliniendateien)

Um Daten auf einem Webserver auch SWF-Dateien in anderen Domänen zur Verfügung zu stellen, können Sie eine Richtliniendatei auf dem Server erstellen. Eine Richtliniendatei ist eine XML-Datei, die in ein bestimmtes Verzeichnis auf dem Server eingefügt wird.

Richtliniendateien steuern den Zugriff auf verschiedene Datenelemente, einschließlich der Folgenden:

  • Daten in Bitmaps, Sounds und Videos

  • Laden von XML- und Textdateien

  • Importieren von SWF-Dateien aus anderen Sicherheitsdomänen in die Sicherheitsdomäne der ladenden SWF-Datei

  • Zugriff auf Socket- und XML-Socketverbindungen

ActionScript-Objekte instanziieren zwei Arten von Serververbindungen: dokumentbasierte Serververbindungen und Socketverbindungen. ActionScript-Objekte wie Loader, Sound, URLLoader und URLStream instanziieren dokumentbasierte Serververbindungen. Diese Objekte laden eine Datei von einer URL. ActionScript-Socket- und XMLSocket-Objekte stellen Socketverbindungen her, die mit Streaming-Daten anstelle von geladenen Dokumenten arbeiten.

Da Flash Player zwei Arten von Serververbindungen unterstützt, gibt es auch zwei Arten von Richtliniendateien: URL-Richtliniendateien und Socket-Richtliniendateien.
  • Dokumentbasierte Verbindungen erfordern URL-Richtliniendateien . In diesen Dateien wird angegeben, dass die Daten und Dokumente auf dem Server für SWF-Dateien aus bestimmten oder allen Domänen verfügbar sind.

  • Socketverbindungen erfordern Socket-Richtliniendateien , die mithilfe der Socket- und XMLSocket-Klassen einen direkten Netzwerkbetrieb auf der unteren TCP-Socketebene ermöglichen.

Flash Player setzt voraus, dass die Richtliniendateien mit dem gleichen Protokoll übertragen werden, das von der gewünschten Verbindung verwendet wird. Wenn Sie eine Richtliniendatei auf Ihrem HTTP-Server platzieren, können SWF-Dateien aus anderen Domänen Daten von diesem Server als HTTP-Server laden. Wenn Sie jedoch keine Socket-Richtliniendatei auf dem gleichen Server bereitstellen, verbieten Sie SWF-Dateien aus anderen Domänen, eine Verbindung auf Socketebene mit dem Server herzustellen. Anders ausgedrückt, das Verfahren zum Abrufen einer Richtliniendatei muss dem Verbindungsverfahren entsprechen.

In diesem Abschnitt werden Verwendung und Syntax der Richtliniendatei in Bezug auf SWF-Dateien, die für Flash Player 10 veröffentlicht wurden, kurz erläutert. (Die Implementierung von Richtliniendateien in früheren Flash Player-Versionen weicht geringfügig hiervon ab, da in den neueren Versionen die Flash Player-Sicherheit erhöht wurde.) Weitere Informationen zu Richtliniendateien finden Sie im Abschnitt „Richtliniendateiänderungen in Flash Player 9“ des Flash Player Developer Center unter www.adobe.com/go/devnet_security_de .

In der AIR-Anwendungs-Sandbox ausgeführter Code benötigt keine Richtliniendatei für den Zugriff auf Daten von URLs oder Sockets. Für Code, der in der AIR-Anwendung in einer anwendungsfremden Sandbox ausgeführt wird, ist jedoch eine Richtliniendatei erforderlich.

Master-Richtliniendateien

Flash Player (und AIR-Inhalte, die sich nicht in der AIR-Anwendungs-Sandbox befinden) suchen zuerst im Stammverzeichnis des Servers nach einer URL-Richtliniendatei mit dem Namen crossdomain.xml und dann auf Port 843 nach einer Socket-Richtliniendatei. Eine Datei in einem dieser beiden Speicherorte wird als Master-Richtliniendatei bezeichnet. (Im Falle von Socketverbindungen sucht Flash Player zudem nach einer Socket-Richtliniendatei am gleichen Port wie die Hauptverbindung. Eine an diesem Port gefundene Richtliniendatei gilt jedoch nicht als Master-Richtliniendatei.)

Eine Master-Richtliniendatei kann nicht nur Zugriffsrechte festlegen, sondern auch eine meta-policy -Anweisung enthalten. Eine „meta-policy“-Anweisung gibt an, in welchen Speicherorten Richtliniendateien enthalten sein können. Die standardmäßige „meta-policy“-Anweisung für URL-Richtliniendateien ist „master-only“, d. h. auf dem Server ist ausschließlich die Richtliniendatei „/crossdomain.xml“ zulässig. Die standardmäßige „meta-policy“-Anweisung für Socket-Richtliniendateien ist „all“, d. h. jeder Socket auf dem Host kann als Socket-Richtliniendatei verwendet werden.

Hinweis: In Flash Player 9 und früheren Versionen war die standardmäßige „meta-policy“-Anweisung für URL-Richtliniendateien „all“, sodass alle Verzeichnisse eine Richtliniendatei enthalten konnten. Wenn Sie Anwendungen bereitgestellt haben, die Richtliniendateien aus anderen Speicherorten als der Standarddatei „/crossdomain.xml“ laden, und diese Anwendungen nun in Flash Player 10 ausgeführt werden, müssen Sie (oder der Serveradministrator) die Master-Richtliniendatei so bearbeiten, dass zusätzliche Richtliniendateien zulässig sind. Weitere Informationen zur Angabe eines anderen „meta-policy“-Ausdrucks finden Sie im Abschnitt „Richtliniendateiänderungen in Flash Player 9“ des Flash Player Developer Center unter www.adobe.com/go/devnet_security_de .

Eine SWF-Datei kann durch Aufrufen der Methode Security.loadPolicyFile() auch auf einen anderen Richtliniendateinamen oder ein anderes Verzeichnis prüfen. Wenn die Master-Richtliniendatei jedoch nicht festlegt, dass das Zielverzeichnis Richtliniendateien bereitstellen kann, hat der Aufruf der Methode loadPolicyFile() keine Auswirkung, selbst wenn in diesem Verzeichnis eine Richtliniendatei vorhanden ist. Rufen Sie die Methode loadPolicyFile() auf, bevor Sie Netzwerkoperationen durchführen, die die Richtliniendatei voraussetzen. Flash Player fügt Netzwerkanforderungen automatisch zur Warteschlange hinter den entsprechenden Richtliniendateiversuchen hinzu. Es ist daher zulässig, die Methode Security.loadPolicyFile() unmittelbar vor dem Initiieren einer Netzwerkoperation aufzurufen.

Beim Überprüfen auf eine Master-Richtliniendatei wartet Flash Player drei Sekunden lang auf eine Antwort des Servers. Bleibt die Antwort aus, geht Flash Player davon aus, dass keine Master-Richtliniendatei vorhanden ist. Für Aufrufe der Methode loadPolicyFile() besteht hingegen kein standardmäßiges Zeitlimit. Flash Player geht davon aus, dass die aufgerufene Datei vorhanden ist, und wartet für einen beliebigen Zeitraum, um diese zu laden. Um sicherzustellen, dass die Master-Richtliniendatei geladen wird, sollten Sie diese daher mit der Methode loadPolicyFile() explizit aufrufen.

Der Name der Methode lautet zwar Security.loadPolicyFile() , die Richtliniendatei wird jedoch erst geladen, wenn ein Netzwerkaufruf, der eine Richtliniendatei voraussetzt, ausgegeben wird. Der Aufruf der Methode loadPolicyFile() informiert Flash Player lediglich, wo Richtliniendateien bei Bedarf gesucht werden sollen.

Sie erhalten keine Benachrichtigung, wenn eine Richtliniendateianforderungen initiiert oder abgeschlossen wurde. Hierzu besteht auch keine Notwendigkeit. Flash Player führt Richtlinienüberprüfungen asynchron durch und wartet mit der Initiierung von Verbindungen automatisch, bis die Richtliniendateiüberprüfungen erfolgreich waren.

Die Informationen in den folgenden Abschnitten beziehen sich ausschließlich auf URL-Richtliniendateien. Weitere Informationen zu Socket-Richtliniendateien finden Sie unter Herstellen einer Verbindung mit Sockets .

Umfang einer URL-Richtliniendatei

Eine URL-Richtliniendatei gilt nur für das Verzeichnis, aus dem sie geladen wurde, sowie dessen Unterverzeichnisse. Eine Richtliniendatei im Stammverzeichnis gilt für den gesamten Server, während eine Richtliniendatei, die aus einem anderen Verzeichnis aufgerufen wurde, nur für dieses Verzeichnis und die zugehörigen Unterverzeichnisse gilt.

Eine Richtliniendatei wirkt sich nur auf den Zugriff auf den Server aus, auf dem sie gespeichert ist. Eine Richtliniendatei unter „https://www.adobe.com:8080/crossdomain.xml“ gilt beispielsweise nur für Aufrufe zum Laden von Daten, die an www.adobe.com per HTTPS an Port 8080 gerichtet wurden.

Festlegen von Zugriffsrechten in einer URL-Richtliniendatei

Eine Richtliniendatei enthält ein einziges <cross-domain-policy> -Tag, das wiederum keine oder mehrere <allow-access-from> -Tags enthält. Jedes <allow-access-from> -Tag enthält das Attribut domain , das entweder eine genaue IP-Adresse, eine genaue Domäne oder eine Platzhalterdomäne (beliebige Domäne) festlegt. Platzhalterdomänen können auf zwei Arten angegeben werden:
  • Durch ein einzelnes Sternchen (*) für alle Domänen und IP-Adresse

  • Durch ein Sternchen gefolgt von einem Suffix für die Domänen, die auf das angegebene Suffix enden

Suffixe müssen mit einem Punkt beginnen. Platzhalterdomänen mit Suffixen können jedoch für Domänen stehen, die nur das Suffix, nicht jedoch den Punkt enthalten. Die Domäne „xyz.com“ gilt beispielsweise Bestandteil von „*.xyz.com“. In IP-Domänenspezifikationen sind keine Platzhalter zugelassen.

Im folgenden Beispiel ist eine URL-Richtliniendatei dargestellt, die den Zugriff auf SWF-Dateien gewährt, die aus den Domänen *.example.com, www.friendOfExample.com und 192.0.34.166 stammen:

<?xml version="1.0"?> 
<cross-domain-policy> 
    <allow-access-from domain="*.example.com" /> 
    <allow-access-from domain="www.friendOfExample.com" /> 
    <allow-access-from domain="192.0.34.166" /> 
</cross-domain-policy>

Wenn Sie eine IP-Adresse festlegen, erhalten nur die SWF-Dateien Zugriff, die mit der IP-Syntax von der IP-Adresse geladen wurden (z. B. http://65.57.83.12/flashmovie.swf). SWF-Dateien mit Domänennamensyntax wird kein Zugriff gewährt. Flash Player führt keine DNS-Auflösung durch.

Sie können Zugriff auf Dokumente gewähren, die von einer anderen Domäne stammen. Dies wird im folgenden Beispiel gezeigt:

<?xml version="1.0"?> 
<!-- http://www.foo.com/crossdomain.xml --> 
<cross-domain-policy> 
<allow-access-from domain="*" /> 
</cross-domain-policy>

Jedes <allow-access-from> -Tag verfügt außerdem über das optionale secure -Attribut, das standardmäßig den Wert true annimmt. Wenn sich die Richtliniendatei auf einem HTTPS-Server befindet und Sie möchten, dass SWF-Dateien auf einem Server ohne HTTPS Daten von dem HTTPS-Server laden können, legen Sie den Wert des Attributs auf false fest.

Das Einstellen des secure -Attributs auf false kann sich jedoch nachteilig auf die von HTTPS gewährleistete Sicherheit auswirken. Insbesondere öffnet das Einstellen dieses Attributs auf false sichere Inhalte für Snooping- und Spoofing-Angriffe. Aus diesem Grund wird strikt davon abgeraten, das Attribut secure auf false einzustellen.

Wenn sich die zu landenden Daten auf einem HTTPS-Server befinden, die SWF-Datei, die die Daten lädt, jedoch auf einem HTTP-Server gespeichert ist, sollten Sie die SWF-Datei auf den HTTPS-Server verschieben. Auf diese Weise können Sie für alle Kopien der sicheren Daten den HTTPS-Schutz aufrechterhalten. Entscheiden Sie sich trotzdem dazu, die ladende SWF-Datei auf einem HTTP-Server beizubehalten, fügen Sie das secure="false" -Attribut zu dem <allow-access-from> -Tag hinzu. Dies wird im folgenden Code gezeigt:

<allow-access-from domain="www.example.com" secure="false" /> 
Ein weiteres Element, das Sie zum gewähren des Zugriffs nutzen können, ist das allow-http-request-headers-from -Tag. Dieses Element ermöglicht einem Client, der Inhalte aus einer anderen Berechtigungsdomäne hostet, benutzerdefinierte Header an Ihre Domäne zu senden. während das <allow-access-from> -Tag anderen Domänen die Berechtigung gewährt, Daten aus Ihrer Domäne abzurufen, ermöglicht das allow-http-request-headers-from -Tag anderen Domänen, Daten in Form von Headern an Ihre Domäne zu übertragen. Im folgenden Beispiel sind alle Domänen berechtigt, den SOAPAction-Header an die aktuelle Domäne zu senden:
<cross-domain-policy> 
    <allow-http-request-headers-from domain="*" headers="SOAPAction"/> 
</cross-domain-policy>

Wenn die Anweisung allow-http-request-headers-from in der Master-Richtliniendatei enthalten ist, wird diese auf alle Verzeichnisse des Hosts angewendet. Andernfalls wird sie nur auf das Verzeichnis der Richtliniendatei, die die Anweisung enthält, und dessen Unterverzeichnisse angewendet.

Vorausladen von Richtliniendateien

Das laden von Daten von einem Server sowie das Herstellen einer Verbindung zu einem Socket erfolgen asynchron. Flash Player wartet, bis die Richtliniendatei heruntergeladen wurde, bevor der eigentliche Vorgang ausgeführt wird. Das Extrahieren von Pixeldaten aus Bildern oder von Beispieldaten aus Sounds ist jedoch ein synchroner Vorgang. Die Richtliniendatei muss daher geladen werden, bevor Sie die Daten extrahieren. Geben Sie beim Laden der Medien an, dass nach einer Richtliniendatei gesucht werden soll:

  • Wenn Sie die Loader.load() -Methode verwenden, legen Sie die Eigenschaft checkPolicyFile des context -Parameters fest, bei dem es sich um ein LoaderContext-Objekt handelt.

  • Beim Einbetten eines Bilds in ein Textfeld mit dem <img> -Tag stellen Sie das checkPolicyFile -Attribut des <img> -Tags auf „true" ein. Dies wird im Folgenden gezeigt:

    <img checkPolicyFile = "true" src = "example.jpg">
  • Wenn Sie die Sound.load() -Methode verwenden, legen Sie die Eigenschaft checkPolicyFile des context -Parameters fest, bei dem es sich um ein SoundLoaderContext-Objekt handelt.

  • Wenn Sie die NetStream-Klasse verwenden, legen Sie die Eigenschaft checkPolicyFile des NetStream-Objekts fest.

Wenn Sie einen dieser Parameter einstellen, prüft Flash Player zunächst auf Richtliniendateien, die bereits für diese Domäne heruntergeladen wurden. Anschließend wird die Richtliniendatei im Standardverzeichnis auf dem Server gesucht. Dabei wird sowohl nach <allow-access-from> -Anweisungen als auch nach einer „meta-policy“-Anweisung gesucht. Zum Schluss werden alle ausstehenden Aufrufe der Security.loadPolicyFile() -Methode berücksichtigt, um festzustellen, ob sich diese innerhalb des Gültigkeitsbereichs befinden.

Kontrolloptionen für Autoren (Entwickler)

Die zum Erteilen von Sicherheitsrechten verwendete ActionScript-Haupt-API ist die Security.allowDomain() -Methode, die SWF-Dateien in den von Ihnen angegebenen Domänen Rechte erteilt. Im folgenden Beispiel wird einer SWF-Datei der Zugriff auf SWF-Dateien erteilt, die sich in der Domäne www.example.com befinden:

Security.allowDomain("www.example.com")

Diese Methode erteilt Rechte für Folgendes:

Der Hauptgrund für das Aufrufen der Security.allowDomain() -Methode ist das Erteilen von Zugriffsrechten für SWF-Dateien in einer externen Domäne, um die SWF-Datei aufzunehmen, welche die Security.allowDomain() -Methode aufruft. Weitere Informationen finden Sie unter Cross-Scripting .

Die Angabe einer IP-Adresse als Parameter für die Security.allowDomain() -Methode gestattet nicht den Zugriff durch alle Parteien, die von der angegebenen IP-Adresse stammen. Stattdessen erhält hierdurch nur eine Partei Zugriff, die in der URL die angegebene IP-Adresse und nicht den Domänennamen enthält, der dieser IP-Adresse zugeordnet ist. Beispiel: Wenn der Domänenname www.example.com der IP-Adresse 192.0.34.166 zugeordnet ist, gewährt ein Aufruf von Security.allowDomain("192.0.34.166") keinen Zugriff auf www.example.com.

Sie können das Platzhalterzeichen „*" an die Methode Security.allowDomain() übergeben, um den Zugriff von allen Domänen aus zu gestatten. Da das Platzhalterzeichen „*“ SWF-Dateien aus allen Domänen Rechte erteilt, ein Cross-Scripting mit der aufrufenden SWF-Datei durchzuführen, müssen Sie es mit Sorgfalt verwenden.

ActionScript enthält eine zweite Berechtigungs-API mit der Bezeichnung Security.allowInsecureDomain() . Diese Methode führt das Gleiche aus wie die Methode Security.allowDomain() , außer dass sie, wenn sie von einer SWF-Datei aufgerufen wird, die von einer sicheren HTTPS-Verbindung stammt, zusätzlich den Zugriff auf die aufrufende SWF-Datei durch andere SWF-Dateien genehmigt, die von einem nicht sicheren Protokoll, wie z. B. HTTP, stammen. Es stellt jedoch kein gutes Sicherheitsverhalten dar, das Scripting zwischen Dateien von einem sicheren Protokoll (HTTPS) und Dateien von einem nicht sicheren Protokoll (z. B. HTTP) zu gestatten, da sicherer Inhalt verwundbar für Snooping- und Spoofing-Angriffen werden könnte. Derartige Angriffe erfolgen meist nach folgendem Muster: Da die Security.allowInsecureDomain() -Methode über von HTTP-Verbindungen stammenden SWF-Dateien Zugriff auf Ihre sicheren HTTPS-Daten gestattet, könnte ein Angreifer zwischen Ihrem HTTP-Server und Ihren Benutzern Ihre HTTP-SWF-Dateien durch eigene ersetzen, die dann auf Ihre HTTPS-Daten zugreifen können.

Wichtig: Code, der in der AIR-Anwendungs-Sandbox ausgeführt wird, darf die Methoden allowDomain() und allowInsecureDomain() der Security-Klasse nicht aufrufen.

Eine weitere wichtige sicherheitsbezogene Methode ist Security.loadPolicyFile() , die dazu führt, dass Flash Player an einem nicht dem Standard entsprechenden Speicherort nach einer Richtliniendatei sucht. Weitere Informationen finden Sie unter Kontrolloptionen für Websites (Richtliniendateien) .