Aus der Referenz:
Flash-Dokumente können mit Hilfe eines der folgenden Aufrufe Daten aus externen Quellen laden: XML.load(), XML.sendAndLoad(), LoadVars.load(), LoadVars.sendAndLoad(), loadVariables(), loadVariablesNum(). Darüber hinaus können SWF-Dateien Runtime Shared Libraries oder in einer anderen SWF-Datei definierte Bestände zur Laufzeit importieren. Standardmäßig müssen sich die Daten bzw. (im Fall von Runtime Shared Libraries) SWF-Medien in derselben Domäne wie die SWF-Datei befinden, die die externen Daten oder Medien lädt.
Mit einer domänenübergreifenden Richtliniendatei können Sie Runtime Shared Library-Daten und -Bestände für SWF-Dateien in verschiedenen Domänen zur Verfügung stellen. Eine domänenübergreifende Richtliniendatei ist eine XML-Datei, mit der der Server angeben kann, dass seine Daten und Dokumente für SWF-Dateien bestimmter Domänen oder aller Domänen verfügbar sind. Jede SWF-Datei, die von einer in der Richtliniendatei des Servers festgelegten Domäne bereitgestellt wird, kann auf Daten oder Bestände dieses Servers zugreifen.
Wenn ein Flash-Dokument versucht, auf Daten einer anderen Domäne zuzugreifen, versucht der Flash Player automatisch, eine Richtliniendatei von dieser Domäne zu laden. Wenn die Domäne des Flash-Dokuments, das auf die Daten zuzugreifen versucht, in der Richtliniendatei enthalten ist, sind die Daten automatisch zugänglich.
Richtliniendateien müssen den Namen crossdomain.xml tragen und sich im Stammverzeichnis des Servers befinden, der die Daten bereitstellt. Sie können nur auf Servern eingesetzt werden, die per HTTP, HTTPS oder FTP kommunizieren. Richtliniendateien sind speziell für den Anschluss und das Protokoll des Servers ausgelegt, auf dem sie sich befinden.
Die Richtliniendatei unter
https://www.macromedia.com:8080/crossdomain.xml gilt beispielsweise nur für Aufrufe, die an
http://www.macromedia.com per HTTPS an Anschluss 8080 gerichtet wurden.
Eine Ausnahme von dieser Regel ist die Verwendung eines XMLSocket-Objekts zur Verbindung mit einem Socketserver in einer anderen Domäne. In diesem Fall muss ein HTTP-Server an Anschluss 80 in derselben Domäne wie der Socketserver die Richtliniendatei für den Methodenaufruf zur Verfügung stellen.
Eine XML-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 sind entweder durch einen einzelnen Stern (*), der für alle Domänen und alle IP-Adressen steht, oder einen Stern mit nachfolgendem Suffix gekennzeichnet, der nur für die Domänen steht, die mit dem angegebenen 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. Beispielsweise wird foo.com als Teil von *.foo.com betrachtet. In IP-Domänen sind Platzhalter nicht erlaubt.
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), nicht aber diejenigen, die mit der Domänensyntax geladen wurden. Flash Player führt keine DNS-Auflösung durch.
Nachfolgend sehen Sie ein Beispiel für eine Richtliniendatei, die einem Flash-Dokument auf foo.com Zugriff auf Flash-Dokumente gestattet, die von foo.com, friendOfFoo.com, *.foo.com und 105.216.0.40 stammen:
<?xml version="1.0"?>
<!-- http://www.foo.com/crossdomain.xml -->
<cross-domain-policy>
<allow-access-from domain="www.friendOfFoo.com" />
<allow-access-from domain="www.friendOfFoo.com" />
<allow-access-from domain="105.216.0.40" />
</cross-domain-policy>
Eine Richtliniendatei, die keine <allow-access-from>-Tags enthält, hat dieselben Folgen wie ein Server ohne Richtliniendatei.