security - 如何让用户难以将 mp3 文件从我的站点保存到他们的硬盘?

标签 security http streaming mp3

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

目前,我正在做的是:

  • 将 mp3 文件保存到我的网络服务器无法访问的目录。
  • 使用 header 将 mime 类型更改为文本/html 而不是音频/mpeg(我的 swf 播放器不关心它只是读取数据)

问题是提供数据的 Controller 的 url 是可访问的。因此,如果用户查看页面的源代码并将 url 复制粘贴到地址栏中,Web 服务器将很乐意将 mp3 数据发送给他们。

有没有人对如何让这件事变得更难有任何建议?谢谢。

最佳答案

使用 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 如何进行 DRMification,可能会有所帮助。

关于security - 如何让用户难以将 mp3 文件从我的站点保存到他们的硬盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/872877/

相关文章:

http - 使用 HttpWebRequest 时出现 500 Internal Server Error,我怎样才能得到真正的错误?

android - 如何在 android VideoView 中通过 LAN 传输视频

c++ - 无法使用 Live555 服务器进行流式传输 - 示例不起作用

java - 警告 : WEB9102: Web Login Failed: com. sun.enterprise.security.auth.login.common.LoginException:

javascript - Firebase 和用户个人资料 "Security"

apache - 使用 APACHE Web 服务器、Linux CentOS 访问 HDFS HADOOP

python - 请求库无法正确发布,但 urllib 成功 [python]

iphone - 在 IOS 上使用 AFNetworking 流式传输 JSON

java - spring java本地文件包含漏洞

security - CentOS 5.6 : Apache access permission after . htaccess 上传