5

ユーザーがブラウザのオーディオ ファイルを telerik radmediaplayer コントロールからプレビューできる Silverlight アプリケーションを作成しました。

ファイルは Web サーバー上にあり、トラフィックを傍受した人は誰でもファイルをダウンロードできます。ログインしていないユーザーがこれらのファイルにアクセス/ダウンロードできないようにしたいと考えています。

アプリケーションに何らかの一時的な有効な URL を提供し、カスタム httphandler を実装する以外に、どのようなオプションがありますか?

私たちの顧客がファイルをダウンロードできるのであれば、それほど大きな問題ではありません。私たちは、世界中の人々がアクセスできるようにしたくないだけです。

どんなアイデアでも大歓迎です!

[更新] 私が思いつくことができる唯一のものは次のとおりです。

  • 非パブリック フォルダーでファイルをホストする
  • ユーザーがファイルの試聴を要求した場合、それを新しい名前 ([guid].mp3) でパブリック フォルダーにコピーし、その URL を返します。
  • x 分ごとにパブリック フォルダをクリーンアップします。
4

1 に答える 1

3

Web サーバーがディレクトリから直接ファイルを提供しないようにします。アプリケーションの一部を前に置き、サーバー側スクリプトの 1 つを残して、これらのファイルを提供します。生のオーディオ ファイルを Web ルートから遠ざけてください。

たとえば、クライアント側のアプリケーションは次のようにファイルにアクセスします。

http://someserver/yourscript?audio_asset_id=12345

のコードyourscriptはセッション データを検証し、ユーザーがログインしていることを確認してから、アセット ID への実際のパスを特定12345し、その内容をクライアントにエコーします。Content-Type適切なヘッダーも含めることを忘れないでください。

これらの資産へのアクセスを制御できるようになったら、好きなセキュリティ対策を実装できます。セッション領域がすでに十分に保護されている場合、これで問題ありません。また、適切なクォータを実装することをお勧めします。複数の IP アドレスから同じセッション ID を使用してアセットで 100 のリクエストを受け取った場合は、何かが正しくありません。

于 2012-08-17T15:15:55.503 に答える