よく忘れちゃうのでメモ。間違っていたらご指摘ください。

↑youtubeのクロスドメインファイル。
○クロスドメインポリシーファイルとは
Flashから別ドメインにある外部ファイルを読む場合に必要になります。
設置場所は読み込みたい外部ファイルが置いてあるサーバになります。
ファイル名は「crossdomain.xml」とします。
ファイルには以下のように記述します。
<?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <allow-access-from domain="hogehoge" /> </cross-domain-policy>
○接続元ドメインの許可
不特定多数のサーバからのリクエストを許可する場合は[domain="*"]とします。
ある決められたサーバからのみを許可する場合は[domain="許可するドメイン"]とします。
ex)hoge.comから許可したい場合は[domain="http://hogehoge.com"]。
ex)同一ドメインのサブドメインからのリクエストを許可する場合は[domain="*.hogehoge.com"]。
ex)複数個のドメインを許可する場合は
<cross-domain-policy> <allow-access-from domain="*.hogehoge.com" /> <allow-access-from domain="www.fugafuga.com" /> <allow-access-from domain="127.0.0.1" /> </cross-domain-policy>と記述する。
○ポートの制限
また、ポートの制限をかけることができます。
XMLSocketクラスを使用してソケット通信を行う場合などに有効です。
<allow-access-from domain="*.hogehoge.com" to-ports="1024" />
○ファイルの設置場所
基本的にドメインの直下(ルートディレクトリ)に設置します。
swfは自動的にルートディレクトリにあるcrossdomain.xmlを読みにいきます。
もし、あるディレクトリに限って制限を設けたい場合は、該当するディレクトリに
crossdomain.xmlを設置し、swfに明示的にcrossdomain.xmlへのパスを指定します。
System.security.loadPolicyFile('http://hogehoge.com/sample/crossdomain.xml');
○HTTPS(セキュア領域)のファイルを読む場合
同一ドメインでもSSL領域のファイルを読む場合はcrossdomain.xmlの設置が必要です。
secure="false"を追記します。
<allow-access-from domain="http://hogehoge.com" secure="false" />
---crossdomainとは関係ないのですが、ハマったのでメモ---
○IEだとSSL領域のファイルが読めなくなる可能性がある件
IEを使用し、FlashからSSL領域にあるファイルを読み込もうとすると、
ロードが始まらない現象が報告されてます。
Flash-JP
Internet Explorer が SSL 経由によるファイルのダウンロードで "No-Cache" ヘッダーを処理できない
こちらにあるとおり、サーバからはきだされるヘッダーがNo-Cacheになっていると
正しく処理が出来ないようです。No-Cache意外にすると問題なくロードされます。
*参考サイト
[akihiro kamijo]Flash Player 9.0.115.0 セキュリティポリシー変更について
Flash CS3 ヘルプドキュメント
[yoshiweb.NET-blog]カスタムポリシーファイル crossdomain.xml について