1

ユーザーが mp3 をアップロードしたり、ページに埋め込まれたプレーヤーで再生したりできるようにしたいと考えています。専用ユーザーがコンピューターの出力から直接録音してオーディオをコピーするのを止めることは不可能であることはわかっていますが、ユーザーが URL をコピーして貼り付けるだけで、データに直接アクセスできるようにすることを困難または不可能にしたいと考えています。

現在、私がやっていることは次のとおりです。

  • Web サーバーからアクセスできないディレクトリに mp3 ファイルを保存します。
  • ヘッダーを使用して、MIME タイプを audio/mpeg ではなく text/html に変更します (私の swf プレーヤーは気にせず、データを読み取るだけです)。

問題は、データをフィードするコントローラーへの URL がアクセス可能であることです。したがって、ユーザーがページのソースを見て、URL をコピーしてアドレス バーに貼り付けると、Web サーバーは喜んで mp3 データをユーザーに吐き出します。

これをより困難にする方法について誰か提案がありますか? ありがとう。

4

5 に答える 5

2

PHP スクリプトを使用して場所をマスクします。

http://www.site.com/files/foo.mp3

なる

http://www.site.com/files.php?fn=foo.mp3

フラッシュはおそらくそこからの次のステップです。共有状態を使用してダウンロードを承認するために、何らかの形式のワンタイム ID を使用した可能性があります。あなたの session_id がここで役に立ちます。

覚えておいてください: Flash はいくつかの一時フォルダーにキャッシュを保持している場合があります...一部のプレーヤーでは /tmp/aiden-sdjks/foo.mp3 を見つけていたことを知っています。バックエンドで別のファイル形式を使用する、フラッシュでのより優れたストリーミング ソリューションがあるでしょうか?

少なくともこれにより、人々がソースを調べて URL を見つけるのを止めることができます。彼らがプレーヤーをリバースエンジニアリングし、ダウンロードを吐き出すために独自に作成する努力をしない限り.

ただし、あいまいさによるセキュリティは、危険な道です。誰かが十分な努力をすれば、必ず成功します。BBCIplayer がどのように DRM 化を行っているかを見てください。

于 2009-05-16T17:54:10.593 に答える
2

Flash を使用してサーバー上のファイルに直接接続することを、プログレッシブ ストリーミングと呼びます。これにより、Flash プレーヤーは、再生時にサーバーからファイル全体をロードします。もう 1 つの解決策があります。再生中の任意の時点で、ごく一部のデータのみをユーザーのマシンにロードするストリーミングです。

フラッシュの最も信頼できるオプションは、コンテンツにストリーミング サーバーを使用することです。Flash Media Server は 1 つのオプションですが、これは購入するか、ホストされたバージョン (Akamai など) を見つけることができる製品です。小規模なユニットの場合、Red5 ( http://osflash.org/red5 )のようなメディア サーバーのオープン ソース バージョンがあります。

Windows Media Player や QuickTime Player についてはわかりませんが、同様のソリューションがあることは確かです

于 2009-05-16T17:55:15.287 に答える
0

ファイルは保護されたディレクトリに保存する必要があります。私のホスティング サービス (Nearly Free Speech) はこれを自動的に設定し、CGI スクリプト (PHP など) 内でファイルを取得して、一時ファイルに書き込むか、バイナリを直接使用することができます。たとえば、個人の Web サイトへの訪問の単純なリストをこのディレクトリに保存しますが、これは Web ルートの範囲外です。

于 2009-05-16T22:29:00.997 に答える