4

当我通过 HTML5 访问 MP3 文件时,我遇到的问题是 Firefox 没有在 HTTP 标头中发送引用者。

我正在使用来自 jPlayer.org 的播放器来播放 mp3 文件,并且我试图通过从 HTTP-sniffer/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

如果 HTTP-referer 未设置为 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 回答
0

就像 tim 所说,Firefox 不支持 HTML5 http://caniuse.com/#search=audio中的 MP3,在这种情况下,您应该回退到 oog 或 wav。

当然,您说您正在使用来自 jplayer.org 的播放器,它具有 Flash 后备功能,在这种情况下,我们不再真正处理 html5。

jPlayer 支持的 html5 格式 http://www.jplayer.org/latest/developer-guide/#reference-html5-audio-format

HTML5 音频格式

  • Firefox (OSX, Win): WEBMA, OGA
  • Safari (OSX, Win): MP3, M4A
  • 移动 Safari iOS4(iPad、iPhone、iPod):MP3、M4A
  • Opera (OSX, Win): WEBMA, OGA
  • Chrome (OSX, Win): WEBMA, OGA, MP3, M4A
  • IE9(Win):MP3、M4A(可以安装WebM编解码器。)

因此,您的标题内容很可能与不支持 mp3 的 FF 有关。

它也可能是一些奇怪的东西,比如服务器上缺少 mime 类型。再一次,如果我们是合乎逻辑的,浏览器发出的任何请求都应该伴随一个引荐来源网址,无论它是否请求它支持的文件..hmm。

您可以尝试的一件事是,与其直接链接 mp3,不如给它一个 id,并为此向您的服务器发出请求,然后通过重定向返回一个 mp3。

为了理智起见..用oog/wav对其进行测试,并删除您的推荐人检测..只是为了确保它完全有效:)

也就是说,如果你真的关心水蛭,我不会对推荐人信息过于重视,因为这在 FF 和 Chrome 中都很容易被欺骗。使用手工制作的 http 客户端(大多数语言中只需几行代码),您几乎可以欺骗任何东西:cookie、引荐来源网址、跨域策略以及诸如此类的东西 ..不管怎样都离题了 :)

但是,是的,推荐人信息将保护您免受 95% 的人口的伤害。

于 2013-04-06T23:43:45.703 回答