2012-01-16 15 views
11

ここに私のシナリオがあります: 私は友達のバンドのためにウェブページを構築しています。彼らはサイト上でフルバージョンの音楽をストリーミングしたいが、ユーザーがファイルをダウンロードすることはできない。 iTunesとAmazonで音楽を購入するためのリンクがあります。私の理想的な解決策は、html5オーディオタグを使用することです。HTML5オーディオタグでストリーミングするときの音楽の保護方法

私の問題: オーディオタグによる音楽のストリーミングは安全ではなく、ページのソースのURLを捕まえてから、ウェブブラウザからダウンロードするのが非常に簡単です。

私はオンラインでいくつかの調査を行い、いくつかの議論を読んだ。はい、私はそれを100%安全にする方法がないことを知っています。しかし、大部分の人々が音楽を盗むのを防ぐために、いくつかのセキュリティ対策を講じてみたいと思っています。

私の質問では、オーディオを試して保護するためにここでどのような対策を講じることができますか?音楽アクセスをストリームするページのみを許可する方法はありますか?そうすれば、ユーザーは音楽ファイルのURLに移動してダウンロードできるだけではありませんか?または、Webサービスから取得する方法はありますか?

ご迷惑をおかけして申し訳ありません。ありがとう!

答えて

8

私が考えるちょっとしたトリックがあります:1回固有のURLを介して音楽へのアクセスを許可するには:

// Page generation 
// Generate unique token and put it into database 
<audio controls="controls"> 
    <source src="song.ogg?token=UNIQUETOKEN" type="audio/ogg" /> 
</audio> 

// On access 
- Check for corresponding UNIQUETOKEN in database 
- Remove token from database 
- Send audio data 

それは、(例えば)CURLを通して、あなたの曲をダウンロードするからユーザーを防ぐことはできません、しかし、彼らはページを閲覧することができず、ソングを再度ダウンロードするためにソースをナビゲートすることはできない。

また、トラックのサンプルを別々にダウンロードして、カスタムプレイヤーで連続して再生することもできます。これらはちょうどアイデアです、私は彼らがあなたが要求するもののために十分に効率的であるとは確信していません。

+0

このアイデアは良い理論ですが、これがどのように実際にどのように実装されるかはわかりません。はい、データベースを設定してトークンを取得/設定することはできますが、HTMLを使用してクエリ文字列としてトークンを使用してこのURLを使用して曲を取得する方法はわかりません。 – JRusty15

+0

データベースには、 "id"とそれに対応する 'filename'を持つテーブル" tokens "があります。単一の 'filename'には複数の' ids'があるかもしれません。サーバー側では、スクリプトはUNIQUETOKENを検索し、対応するファイル名を取得し、データベース内の行を削除して、曲データを出力します。ファイルの内容を読み取って出力する方法は、サーバー側の言語によって異なります。 PHPでは、 'echo file_get_contents($ filename)'となります。 –

+0

ウェブサイトは第三者によってホストされており、どのような種類のファイルアクセス権を設定する権限はありません。だから、ユーザーがURLに移動して(トークンなしで)ファイルにアクセスするのを止めるにはどうすればよいでしょうか? – JRusty15

0

私は2つの.phpファイルでこれをやった:

最初は「プレイヤー」です。ロードすると、セカンドが受け取るセッションvarが作成されます。

第2は「ストリーマー」です。それがセッションvarを見つけるなら、それはプレーヤーに曲をストリーミングするために '部分コンテンツ'メッセージを使用します。セッション変数がない場合、何もしません。

ファイルシステムへのアクセスなしで直接リンクする方法ではありません。

関連する問題