先日公開された Flash Player 9.0.115.0 からいくつかのセキュリティポリシーが変更されています。そのため、新しいプレーヤをインストールすると今までは閲覧できていたコンテンツが表示されなくなる状態が発生する可能性があります。
今回の変更に関する情報及び対処方法については US サイトの DevNet に詳しく説明されています。(Security changes in Flash Player 9)日本語版も既に翻訳が開始されているとのことなので、近々日本のサイトにも記事が公開されることと思います。
今回はとりあえず主な変更点を 3 点簡単に説明しておきます。もし該当する状況にあたった場合には上記のドキュメントをご覧ください。
ポリシーファイルのフォーマット
ポリシーファイルが正しいフォーマットの XML ファイル以外は無視されるようになります。例えば、トップレベルのタグは <cross-domain-policy> である必要があります。
ポリシーファイルの正しいフォーマットについては、xsd ファイルがプロトコル毎に公開されています。ポリシーファイルの記述内容が正しいかどうかはこれらの xsd を参照することで確認できます。
- http://www.adobe.com/xml/schemas/PolicyFile.xsd
- http://www.adobe.com/xml/schemas/PolicyFileFtp.xsd
- http://www.adobe.com/xml/schemas/PolicyFileHttp.xsd
- http://www.adobe.com/xml/schemas/PolicyFileHttps.xsd
- http://www.adobe.com/xml/schemas/PolicyFileSocket.xsd
9.0.115.0 のデバッグプレーヤからポリシーファイル用のログ機能が追加されていて、問題があればメッセージがログファイルに出力されるようになっています。フォーマットの確認はこっちを使った方が簡単かもしれません。
ドメイン内でのリダイレクト
ポリシーファイルへのリクエストがドメイン内でリダイレクトされた場合、9.0.115.0 からは最初にリクエストした URL ではなくリダイレクトされた先の URL に対するポリシーとして適用されるようになります。
例えば、http://example.com/foo/crossdomain.xml をリクエストしたら、http://example.com/bar/crossdomain.xml にリダイレクトされた場合、読み込まれたポリシーファイルの内容は http://example.com/bar/ 以下の URL へのリクエストに有効になります。
上で触れたログファイルにはリダイレクトの情報も出力されるため、ポリシーファイルへの要求がリダイレクトされたかどうかの確認にも使うことができます。
Content-type の値
9.0.115.0 から HTTP ヘッダの Content-Type が以下の値のどれかに含まれないと、読み込んだポリシーファイルを無効とみなします。
text/* application/xml application/xhtml+xml
これはポリシーファイルがテキストであることを多少なり保証するための変更です。
ソケット接続
9.0.115.0 から ActionScript によりソケット接続をする場合にはポリシーファイルが必須になります。
実際には、9.0.115.0 ではまだほとんどのケースで警告が表示されるだけで接続が可能です。とはいえ、ローカルサーバに接続している場合など、いくつかのケースで新しいルールに従ったポリシーファイルが必要になることがありますのでご注意ください。
ログファイル
最後に、ポリシーファイル用のログファイルの使い方です。
まず、新しいデバッグプレーヤをインストールします。ダウンロードは Flash Player サポートセンターから行うことができます。(Flash Player Support Center)
次に mm.cfg ファイルを編集します。このファイルはユーザのホームディレクトリに置かれています。無い場合には新しく作成してください。ファイルには以下の 2 行を追加します。
PolicyFileLog=1 # ポリシーファイルのログを有効にする PolicyFileLogAppend=1 # 起動時にログファイルをクリアしない(この指定はオプション)
PolicyFileLogAppend=1 を指定した場合にはファイルサイズがどんどん大きくなります。その点にはご注意ください。
以上で設定は完了です。Flash Player を再起動すると以下の場所に policyfiles.txt という名前のファイルが作成されると思います。
Windows: C:\Documents and Settings\username\Application Data\Macromedia\Flash Player\Logs Windows Vista: C:\Users\username\AppData\Roaming\Macromedia\Flash Player\Logs Macintosh: /Users/username/Library/Preferences/Macromedia/Flash Player/Logs Linux: /home/username/.macromedia/Flash_Player/Logs
コメントする