メタポリシーは、昨年 12 月に発表された Flash Player セキュリティ関連の変更点のひとつです。 メタポリシーに間しては 4 月のセキュリティアップデートでの変更が行われないため、まだ対応しなくても直ぐに問題になることはありませんが、いずれ必須になることは明言されていますので早めに対応しておいたほうがよいかと思います。
さて、メタポリシーはサイト管理者がポリシーファイルを管理するための手段として提供されています。たとえば、管理者の知らないところで勝手にポリシーファイルを定義してアクセス許可を与えるといった状況を防ぐのに使えます。
メタポリシーはマスターポリシーファイル内に記することができます。マスターポリシーファイルはサイトのルートに置かれたポリシーファイル (/crossdomain.xml) です。マスターポリシーファイル内には今までどおり通常のポリシーも記述することができます。メタポリシーの記述には site-control タグを使用します。下はマスターポリシーファイルの例です。
<?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <site-control permitted-cross-domain-policies="all" /> <allow-access-from domain="*" /> </cross-domain-policy>
誰でも自由にすべてのリソースにアクセスできるサイトであれば上の内容をそのまま使えばメタポリシーへの対応は完了です。とりあえず対応だけはしておこうという場合も、上のようにメタポリシーとして all を指定しておけば、将来 Flash Player がこの件でアップデートされても影響を受けません。
all を含め、メタポリシーとして指定できる値は 6 つあります。
- all :
全てのポリシーファイルを許可 - by-content-type :
Content-Type が text/x-cross-domain-policy のポリシーファイルを許可 - by-ftp-filename :
FTP サーバから crossdomain.xml という名前のポリシーファイルのみ許可 - master-only :
マスターポリシーファイルのみ許可 - none :
全てのポリシーファイルを不許可 - none-this-response :
特定のレスポンスでポリシーファイルを不許可
メタポリシーを指定するもうひとつの方法は HTTP ヘッダに記述することです。特に、上のリスト内の最後の none-this-response だけは、HTTP のレスポンスヘッダにしか記述できません。また、HTTP ヘッダを使用するときには none-this-response を除き全てのレスポンスに同じポリシーを指定する必要があります。下はその例です。
HTTP/1.1 200 OK X-Permitted-Cross-Domain-Policies: none
HTTP レスポンスヘッダー内の値はマスターポリシーファイル内の値よりも優先されます。
コメントする