ソケットポリシーファイルと Flash Player セキュリティ
Flash Player が4月にアップデートされるワケだが
こんな仕様が4月からFlash Player 9.0.124.0に実装されました。DWCのプレイヤーの方からログインできないと報告があって初めて調べて知り得ました、情報収集不足でした。
Flash Player 9.0.115.0の時点でデバッガのログに警告文が出るようになっていたらしい。
セキュリティに関するFlash Player 9の変更点 にpolicyfiles.txtの使い方なども書いてある。
たしかにFlash Player 9.0.115.0になってからチャットルームへログインするときに数秒間時間がかかっていた、これは843ポートにソケットポリシーファイルを読み込みにいって3秒間タイムアウトしていたからだったんだね。
ちょうどこのタイミングでチャットサーバーを切り替えていたので、その所為かと思って深く考えなかった。
動作していたし...。
今回のセキュリティ強化によって、簡単にまとめると。
ソケット接続にソケットポリシーファイルの設定が必要になった (同じドメイン間の通信にも設定が必要) 従来のcrossdomain.xmlへの設定だけではエラーが出る。
対応策として
ソケット接続が行われた際、swfは接続先のサーバー TCP 843 ポート にマスターソケットポリシーファイルを取りに行くので843ポートからマスターソケットファイルを返すプログラムをサーバー上に設置して常駐させておけということになる。
Adobeからサーバー用のサンプルプログラムが配布されている。「Created:14 April 2008」に作られたみたいね...
サーバー用のプログラムを慣れないperlで自作してテストサーバーで苦労して寝不足になりつつ調整...していたのに!リリースすんの遅いやんか!Peleus !もっとはよだせ~~
というわけでサンプルプログラムを使ってサーバーに設置しました。手順を書いておきます。
flashpolicyd.pl flashpolicy.xml
この2つのファイルをサーバーに上げておきます。
いじくっておくのはflashpolicy.xmlの以下の部分です。
<allow-access-from domain="サーバ" to-ports="ポート番号" />
1024以下のポートを使うのでサーバへはroot権限ででログインし以下のコマンドで起動します。
./flashpolicyd.pl --file=flashpolicy.xml
これで無事にサーバーの準備ができました。
policyfiles.txtのデバッグログも正常に応答が返ってきているのが確認できました。
OK : ポリシーファイルを受け取りました : xmlsocket://warcry.biz:843
さぁ、あとは実際に動かしてみて問題がないか見ていこう。
...問題が起きませんように(>人<)

コメントする