Flash Player のセキュリティアップデートが来月予定されている旨の情報が US のサイトに公開されました。(Preparing for the Flash Player 9 April 2008 Security Update)
このアップデートは純粋にセキュリティ改善を目的としたもので、新機能は一切ありません。しかし、デフォルトポリシーの変更などが行われるため、既存のコンテンツの中には動かなくなるものが出てくることも予想されます。
今回、事前に情報が公開されたのは、この変更に事前に準備する期間を確保するためです。以下、変更点の概要を説明しますので、影響を受けると思われるコンテンツがある場合は対応をご検討ください。
1. javascript のプロトコルとしての利用
これまでは loadMovie() メソッド等と使用して javascript を呼び出すことが可能でした。今度のアップデート以降は、getURL() か navigateToURL() または ExternalInterface のみで使用できるようになります。
2. allowScriptAccess の扱い
allowScriptAccess は swf からスクリプトへのアクセスを制御するための HTML タグに指定する属性です。既存のプレーやでは swf 7 以前のバージョンの swf に対しては allowScriptAccess = always が、 swf 8 以降のバージョンの swf に対しては allowScriptAccess = sameDomain がデフォルト値でした。
今後はすべてのバージョンの swf に対して sameDomain がデフォルトになります。そのため、swf 7 以前のバージョンでパブリッシュされた swf はスクリプトの呼び出しができなくなるケースがあります。その場合には、明示的に allowScriptAccess = always を指定してください。
3. HTTP ヘッダへの追加
XML.addRequestHeader()、 LoadVars.addRequestHeader()、 URLRequest.requestHeaders を利用すると、HTTP リクエストを送る際にヘッダに属性を追加することができます。ここに、新しいプレーヤからは、他のドメインのサーバにヘッダを追加して送信する際に、まず送り先のサイトの許可を確認するという動きが追加されます。
具体的には、受け側のサーバ上の crossdomain.xml に以下のようなエントリが必要になります。
<allow-http-request-headers-from domain="www.example.com" headers="HeaderName"/>
4. ソケット接続時のポリシーファイルが必須に
XMLSocket や Socket を使い接続をする際のポリシーファイルの条件が厳しくなります。アップデート後からは同じドメイン間の接続でも、個々の接続用またはポート 843 を介したマスターポリシーファイルが必要になります。
ソケットポリシーファイルについてはまた別の機会にもうちょっと詳しく説明したいと思います。
とりあえず今回は以上ですが、将来的にはメタポリシーの使用に関する変更があることなども既に発表されています。現在動いていても将来変更が必要な設定については、セキュリティログ (「Flash Player 9.0.115.0 セキュリティポリシー変更について」 内ログファイルの項参照) に警告として出力されるはずですので、サイトを管理されている方は一度確認してみることをお勧めします。
コメントする