Flash Player でソケットが機能しない

9.0.115.0 以降の Adobe Flash Player 版では、以下のいずれかの設定が意図したとおりに動作しないことがあります。

  • SWF ファイルはソケットポリシーファイルを取得する loadPolicyFile 呼び出しを実行せずに、ソケットまたは XMLSocket 接続を独自のホストに戻します。
  • SWF ファイルはソケットまたは XMLSocket 接続を独自のホストに戻し、許可されたドメイン内に独自のドメインをリストしないポリシーファイルを読み込みます。
  • SWF ファイルは、アクセス権を付与する HTTP ポリシーファイルとともに、ソケット接続または XMLSocket 接続を任意のホストに戻します。

この変更がご自分のサイトに該当するかどうかを判定する手順については、「診断」セクションを参照してください。

理由:

9.0.115.0 以降の Flash Player 版では、ソケット接続のアクセス許可要件が変更され、HTTP ポリシーファイルではソケット接続を承認しなくなりました。Flash Player には、次の 2 種類のポリシーファイルがあります。

  • HTTP ポリシーファイル。これは、サーバー上の crossdomain.xml ファイルで、他のドメインの SWF ファイルがそのサーバーのコンテンツをロードできるかどうかを定義します。
  • ソケットポリシーファイル。これは、Flash Player が Socket 接続または XMLSocket 接続を使用して接続できるポートを定義します。

以前の版では、ソケットによってデプロイされるポリシーファイルであるソケットポリシーファイルは、以下の場合は、1024 以上のポートに接続する必要はありませんでした。

  • SWF ファイルを提供したドメインがソケット接続のドメインと同じである場合。
  • 配信ドメインが crossdomain.xml ファイルをホストした場合。

これ以前の構成では、1024 以上のポートから提供される重要なサービスが増えているため、顧客に対するリスクが発生しました。この変更は、Flash Player ソケットを使用して被害者のホストに達する DNS 再バインド攻撃の可能性を軽減するのにも役立ちます。この問題を緩和するために、Flash Player では、宛先ポートと crossdomain.xml ファイルの有無にかかわらず、すべてのソケット接続についてソケットポリシーファイルが必要になっています。ポート 843 のソケットポリシーファイルの固定マスターロケーションが作成されます。このポートのポリシーファイルでは、他のソケットポリシーファイルがホスト上で許可されるかどうかを定義するメタポリシーを定義できます。デフォルトでは、すべてのソケットポリシーファイルが承認されます。

Crossdomain.xml ファイルが存在するために 1024 以上のポートで SWF ファイルが以前には元のホストに接続できていた場合は、ソケットポリシーファイルが必要になります。ソケットポリシーファイルは、マスターソケットポリシーポート(843)から、またはソケット接続と同じポートから提供できます。

診断

この変更がご自分のサイトに該当するかどうかを判定するには、以下の情報を参照してください。Flash Player 9.0.115.0 では、ポリシーファイルログという新機能が導入されました。ポリシーファイルログには、ポリシーファイルの取得、ポリシーファイルの処理が正常に終了したか失敗したか、ポリシーファイルに依存する要求の結果など、ポリシーファイルに関連するすべてのイベントのメッセージが表示されます。ポリシーファイルログメッセージの詳細は、Flash Player 9 および 10 におけるポリシーファイル関連の変更の付録 B を参照してください。

ポリシーファイルログを使用するには、次の手順を実行します。

  1. Flash Player 9.0.115.0 以降のデバッグバージョンをインストールします。すべてのタイプ(ActiveX、プラグイン、スタンドアロン)のFlash Playerを使用できます。 デバッグバージョンの Flash Player は、Flash Player サポートセンターのダウンロードページから入手できます。
  2. mm.cfg 構成ファイルの場所を判定します。これは、デバッグバージョンのFlash Playerが起動時に読み取る一般的なデバッグ構成ファイルです。 mm.cfg ファイルはホームディレクトリにあります。例:

    • Windows: C:\Documents and Settings\username
    • Windows Vista: C:\Users\username
    • Mac OS および Linux: /home/username
  3. mm.cfg が存在しない場合は作成し、次の行の 1 つまたは両方を追加します。

    • PolicyFileLog=1 # Enables policy file logging
    • PolicyFileLogAppend=1 # Optional; do not clear log at startup
    • PolicyFileLogAppendが有効になっていない場合は、新しいルートレベルの各SWFによりログファイルがクリアされます。 policyfilelogappendpolicyfilelogappend<> が有効になっている場合は、ログファイルの前の内容が常に保持され、最終的にはログファイルが大きくなります。

    テスト中に複数の異なるルートレベルのSWFファイルがロードされる場合は、PolicyFileLogAppendを有効にします。 ただし、PolicyFileLogAppend を有効にする場合は、手動で名前を変更するか、または時々ログファイルを削除してください。そうしないと、サイズが非常に大きくなって、以前の出力がどこで終了し、新しい出力がどこで開始するのかの判定が難しくなります。

  4. policyfiles.txtというポリシーファイルログが書き込まれる場所を探します。 このログは必ずしも存在しているとは限りません。次に SWF ファイルが実行されたときに 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
    • Mac OS: /Users/username/Library/Preferences/Macromedia/Flash Player/Logs(プログラムがログファイルを Preferences ディレクトリに書き込むのは異例ですが、それは実際にあります)
    • Linux: /home/username/.macromedia/Flash_Player/Logs
  5. 設定を確認するには、Flash Player で SWF ファイルを実行してから、Flash Player (またはブラウザー)を閉じます。

  6. これで、policyfiles.txt が Logs ディレクトリに作成されます。最新の変更時刻であることを確認します。 ファイルを開き、少なくとも1つのメッセージ(「Root-level SWF loaded」)が表示されていることを確認します。 メッセージが表示されている場合、ポリシーファイルログは機能しています。

  7. テストする必要がある SWF コンテンツにアクセスします。ポリシーファイルの取得を伴うシナリオを使用して、コンテンツを実行します。 完了したらFlash Playerを閉じます。
  8. テストの実行中にポリシーファイルで行われた処理の詳細について、policyfiles.txtを確認します。 不明なメッセージが表示された場合は、Flash Player 9 および 10 におけるポリシーファイル関連の変更を参照してください。

  9. 後で参照できるように保存しておく必要がある情報が policyfiles.txt に含まれている場合は、ログファイルの名前を policyfiles.txt 以外に変更するか、別のディレクトリに移動して、もう一度 Flash Player を実行するときにログが上書きされないようにします。

解決策:ホストへの接続を許可するソケットポリシーファイルを作成する

この問題に対処するには、ホストへの接続を許可するソケットポリシーファイルを作成する必要があります。このポリシーファイルは、ポート 843 のソケットマスターポリシーの場所から、またはソケット接続の宛先ポートから提供できます。ソケットポリシーファイルには、ソケット本体も含め、ソケットへの接続を許可されているすべてのドメインを組み込む必要があります。ソケットポリシーファイルがマスターポリシーファイルの場所からホストされている場合は、ソケットポリシーファイルの配置を許可されているメタポリシーを組み込みます。

ソケットポリシーファイルの変更点の詳細は、Flash Player 9 および 10 におけるポリシーファイル関連の変更を参照してください。(ログメッセージの詳細は、付録 B を参照してください。)

その他の参照情報

Flash Player セキュリティ情報については、Flash Player セキュリティページを参照してください。

また、クロスドメインおよびソケットポリシーファイルの変更点の詳細についても、Flash Player 9 および 10 におけるポリシーファイル関連の変更を参照してください。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー