3

最近、Web をかなりクロールしましたが、302 リダイレクトの場合に crossdomain.xml ファイルがどのように動作するかについて正確な情報を取得できませんでした。特に、サンドボックスが以前のバージョンで大幅に変更されました!

私はフラッシュに比較的慣れていないので、アドバイスをいただければ幸いです。

最近、ある種の CDN ディストリビューションでオーディオ ストリームを使用するプロジェクトに取り組んでいます。何が起こるかというと、共通の URL がトリガーされ、ユーザーは利用可能な次善のサーバーに動的にリダイレクトされます。私の場合、サーバー側にはアクセスできません(少なくともすぐにはアクセスできません)。そして、適切な crossdomain.xml を提供する唯一のパスは、リダイレクトを実行するパスです。他のすべての動的パスは、コンテンツのみを提供します!

http://resource.domain.com (valid crossdomain.xml)

    302 => http://dyn1.domain.com/...

    302 => http://dyn2.domain.com/...

    302 => http://dyn3.domain.com/...

次のようなものでオーディオストリームをロードしようとすると、フラッシュはあまり気にしないことに気付きました...

var req :URLRequest = new URLRequest("http://resource.domain.com");

var sound :Sound = new Sound(req); // ie. effectively playing http://dyn3.domain.com

sound.play();

リダイレクトとストリーミングの両方がうまくいきます!クロスドメインファイルを気にせず、再生を開始します!

リクエストにいくつかのカスタムヘッダーを設定し、代わりに URLStream でファイルをロードするなど、別のことを試みると、すべてが面倒になります! 予想通り、リダイレクトは完了しましたが、突然、リダイレクトされた場所に別のクロスドメイン ファイルが必要になりました。

何が起こっているのか、最終的にこれを解決する方法についての説明はありますか?!

御時間ありがとうございます!


それはサイトの質問として来ます:ローカルの信頼できるサンドボックスにいる間はすべてが問題なく動作し、リモートサンドボックスだけではないにしても主にエラーが発生していることに気付きました。local-trusted サンドボックスがクロスドメイン ポリシー ファイルをまったく気にしない可能性はありますか!?

4

1 に答える 1

3

概要

crossdomain.xml各 CDN ホストに追加するか、制限されたSound機能を採用します。

詳細

  1. local-trusted サンドボックスに割り当てられた SWF ファイルは、他の SWF ファイルと対話でき、どこからでも (リモートまたはローカル) データをロードできます。

  2. Sound特定の制限付きのクロスドメイン ポリシーを使用して、アクセスを許可しない他のドメインからコンテンツを読み込むことができます。

    サウンドを扱う特定の操作が制限されます。ロードされたサウンドのデータは、クロスドメイン ポリシー ファイルを実装しない限り、別のドメインのファイルからアクセスできません。この制限に該当するサウンド関連の API は、Sound.id3、SoundMixer.computeSpectrum()、SoundMixer.bufferTime、および SoundTransform クラスです。

  3. 一般に、Flash にはかなり複雑なクロスドメイン ポリシーがありますが、あなたのケースcrossdmain.xmlでは、SWF を提供するホストを除く各ホストで適切なポリシーを設定する必要があります。

    3.1. ファイルが から提供される場合、http://resource.domain.com必須ではありませんがhttp://resource.domain.com/crossdomain.xml、あると非常に便利です。

    3.2. 未加工のロードされたデータへのアクセスを提供する他の A​​PIを使用できるようにするにはhttp://dyn2.domain.com/crossdomain.xml、SWF がアクセスできるように明示的に適切に許可する必要があります。dyn2.domain.comURLLoader

    3.3. これらの制限には理由があります - Cookie (およびその他のアンビエント ユーザー資格情報)。Flash がリダイレクト後に適切なクロスドメインを必要としない場合、最初に自分のリダイレクタをロードするだけで、ユーザー Cookie が添付された任意のドメインにアクセスできます。これは、ブラウザで実行されているインターネット上の任意の SWF から、Cookie で保護されたすべてのユーザー データ (mail.google.com など) にアクセスすることを意味します。

于 2013-04-28T03:03:50.567 に答える