crossdomain.xmlをあらかじめキャッシュしたらどうなるのか、気になったので観察。
- crossdomain.xmlを置いていないドメイン[X]があるとする
- ドメイン[X]のXMLを読もうとするSWF[x]を作る
- SWF[x]を適当なサーバに置いておく(ドメイン[Y])
- /etc/hostsを使ってドメイン[X]のIPをローカルのものにでも変えてみる
- 上記のIPを持ったサーバ(ローカル)に嘘のcrossdomain.xmlを置く
- 上記のcrossdomain.xmlは全ドメインを許可
- ブラウザで上記crossdomain.xmlを開いてキャッシュさせる
- /etc/hostsから嘘エントリを消しておく
- ブラウザを再起動してDNS情報を消しておく
- ブラウザでSWF[x]にアクセスする
- SWF[x]はドメイン[X]のXMLを読めるのか
結果、ちゃんと(?)読み込めました。予想通り。
crossdomain.xmlをキャッシュさせない様に返せば、Flashは毎回crossdomain.xmlにリクエストを投げるはずなので、キャッシュさせなければ出来ないのでしょうけど。ちなみに、テスト環境はOSX(Leopard)のFirefox2(lzyc)のFlash Player9です。SWFはFlash MX 2004 Proで作りました。
「だからどうした」な気もしますが、そんな事もできますよ、というご報告まで。暇つぶしエントリでした。

