4

HTML5 を介して MP3 ファイルにアクセスしているときに、Firefox が HTTP ヘッダーでリファラーを送信しないという問題があります。

私は jPlayer.org のプレーヤーを使用して mp3 ファイルを再生しています。HTTP スニファー/FireBug/similar から URL を読み取って、人々が曲をダウンロードできないようにしています。これに対する私のアプローチは、.htaccess ファイルの HTTP ヘッダーをチェックすることです。

RewriteCond %{HTTP_REFERER} !^http://(www\.)?mydomain.com/.*$ [NC]
RewriteRule ^play/(\S+)$ /uploads/error.mp3
RewriteRule ^play/(\S+)$ /uploads/mp3/$1.mp3

これらの 3 行は、HTTP リファラーが mydomain.com で何かに設定されていない場合、ブラウザーに error.mp3 を再生するように指示します。それ以外の場合は、実際の mp3 ファイルを取得します。

これは、Chrome、Internet Explorer 7/8/9、Safari(PC)、および Opera で正常に動作します。ただし、Firefox (PC と Mac の両方) と Safari (Mac) では機能しません。これは、HTTP リファラーがまったく送信されていないためと思われます。FireBug を見ると、Request-headers のどこにも Referer が見当たらないので、まったく送信されていないと思いますか? Web 開発者ツールの [ネットワーク] タブを見ると、Chrome で確認できます。

他の誰かがこの問題に精通していますか? MP3 ファイルのダウンロードを防止する方法、または少なくともダウンロードを困難にする方法を教えてください。一時停止/再開が機能しないため、PHP を介して MP3 ファイルを渡すことは機能しないようです。

4

2 に答える 2

0

FirefoxがHTML5オーディオ内のMP3形式をサポートしているとは思いません。たぶん、oggファイルでもこの​​コードを試してみるべきですか?

HTMLオーディオおよびビデオ要素でサポートされているメディア形式を参照してください。

于 2012-10-10T20:34:14.620 に答える