ソケットポリシーについて書こうと思っていたら既にちゃんとした記事が公開されていました。
ので、ここではごく簡単に。
ソケットポリシーファイルは Flash Player 7 の時に導入された機能で、XMLSocket や Socket を使った接続要求に対して、サーバ側でアクセス制御を行うための手段として使用されます。
ソケット経由の接続ポリシーに関して Flash Player 9.0.115.0 から変更された主要な点は、1.マスターポリシーファイルの導入、2.メタポリシーのサポート、3.より厳格なソケットポリシーの採用です。9.0.115.0 では、これらを満たしていない環境を警告として扱いますが (デバッグプレーヤだと警告メッセージをログにを出力できます) 来月のアップデート版以降はエラーとして扱うようになります。
とりあえず対処するには、以下のような内容を TCP のポート 843 から返すプログラムをサーバ上で実行します。allow-access-from タグ内の domain と to-ports 属性には実際の環境に合わせて適当な値を設定してください。
<cross-domain-policy> <site-control permitted-cross-domain-policies="master-only"/> <allow-access-from domain="mysite.com" to-ports="999,3050-3052/> </cross-domain-policy>
さて、以下もう少しだけ詳しい説明です。
ソケットマスターポリシーファイル
接続にもマスターポリシーファイルのコンセプトが導入されました。HTTP 接続のマスターポリシーファイルは /crossdomain.xml ですが、ソケットマスターポリシーファイルは TCP のポート 843 から送られるポリシーファイルということになっています。
1024 以下の固定のポート番号を使用することで、ポリシーファイルの管理を、適切な権限を持つ管理者が標準化された方法で行えるようにしたいというのが意図のようです。なお、ポート 843 の使用に関しては現在 IANA に申請中とのことです。
ソケットメタポリシー
ソケットメタポリシーはソケットポリシーファイルの使用条件を設定するためのもので、マスターポリシーファイルのみに指定できます。このメタポリシーの利用もソケットマスターポリシーファイルが採用された理由の一つです。
メタポリシーの種類は以下の 3 つです。
- all:ポリシーファイルをどのポートからも提供可能 (データを一般に公開しているサーバ向け)
- master-only:ポート 843 からのみポリシーファイルの送信を許可
- none:ポリシーファイルを不使用に (Flash Player からの接続を一切許可しない)
デフォルトのソケットメタポリシーは all です。
強化されたソケットポリシー
9.0.115.0 以降 Flash Player からソケット接続をするには、個々の接続が明示的にソケットポリシーファイルにより許可される必要があります。(前述のように 9.0.115.0 では警告扱いです)
コメントする