1

我希望用户能够上传 mp3,也能够通过嵌入页面的播放器播放它们。我知道通过直接从计算机输出录制音频来阻止专用用户复制音频是不可能的,但我想让用户很难或不可能只复制 URL 并粘贴它,这样他们就可以直接访问数据。

目前,我正在做的是:

  • 将 mp3 文件保存到我的 Web 服务器无法访问的目录中。
  • 使用标头将 mime 类型更改为 text/html 而不是 audio/mpeg(我的 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

Flash 可能是从那里开始的下一步。也许它使用了某种形式的一次性 id 来授权使用共享状态的下载。您的 session_id 将在这里提供帮助。

请记住:Flash 可能会在某个临时文件夹中保留缓存……我知道我曾经在某些播放器上找到 /tmp/aiden-sdjks/foo.mp3。闪存中可能有更好的流媒体解决方案,它在后端采用另一种文件格式?

至少这可以阻止人们查看源代码并找到 URL。除非他们努力对播放器进行逆向工程并编写自己的播放器以吐出下载。

然而,通过默默无闻的安全是一条危险的道路。有人,只要有足够的努力,总会成功。看看 BBCIplayer 如何进行 DRM 化,可能会有所帮助。

于 2009-05-16T17:54:10.593 回答
2

使用 Flash 直接连接到服务器上的文件称为渐进式流式传输。这使得 Flash 播放器在播放时从服务器加载整个文件。还有另一种解决方案:流式传输,在播放期间的任何时间都只将一小部分数据加载到用户机器中。

Flash 最可靠的选择是为您的内容使用流媒体服务器。Flash Media Server 是一种选择,但您可以购买或查找托管版本(如 Akamai)的产品。如果你是一个较小的单位,有媒体服务器的开源版本,比如 Red5 ( http://osflash.org/red5 )

不确定 windows 媒体播放器或 quicktime 播放器,但我相信那里也有类似的解决方案

于 2009-05-16T17:55:15.287 回答
0

取决于你想做多难。您可以使用 javascript 重写 url,基本的 ROT-13,希望人们不会费心去解码它。

不过,我还没有尝试将 javascript 函数放入 html 对象 src 中。

于 2009-05-16T17:45:56.013 回答
0

您应该将文件存储在受保护的目录中。我的托管服务 (Nearly Free Speech) 会自动为您设置,您可以在 CGI 脚本(例如 PHP)中检索文件,然后写入临时文件或直接使用二进制文件。例如,我在此目录中存储了对我的个人网站的简单访问列表,该目录超出了 web 根目录的范围。

于 2009-05-16T22:29:00.997 回答
-1

我不知道 Flash 播放器解决方案是否可以做到,但它可能值得研究。

于 2009-05-16T17:47:23.013 回答