php - jPlayer Stream MP3 但防止下载和盗链

标签 php jquery jquery-ui jplayer

我正在建立一个类似于 thefuture.fm 的网站。 DJ 可以上传 MP3 文件并设置文件是否只能流式传输或流式传输和下载。

该站点的访问者无需登录即可收听音乐。他们应该能够根据用户设置流式传输/下载这些 MP3 歌曲。

我正在使用 jPlayer 来播放歌曲。我在网上搜索过,但找不到任何解决方案。 jPlayer 是否有防止下载 MP3 文件之类的功能?或者有什么办法可以防止这种情况发生?

最佳答案

实际上阻止下载是不可能的。你可以让某人更难,但他仍然需要下载所有数据才能听到这首歌。因此,即使您使用某种加密方式将数据发送到您自己编写的 Flash 播放器,播放器也必须对其进行解密并播放音频。而且由于您可以反编译 flash,因此找出算法并不难。他还可以在播放音乐时重新录制音乐(类似于第一个 DVD 解密工具,只需截取 30 次/秒的屏幕截图即可通过百万美元的安全措施)

所以我们的目标是让它变得更难,而不是不可能。

我个人会选择临时可用链接和 cookie,这样我仍然可以使用 jplayer 而不必重新发明轮子。还使用一些混淆来使 URL 更难阅读。

当有人请求主 URL(您在其中显示您的播放器)时,生成一个唯一的 key 并将其保存在 cookie 中。唯一键应链接到 session 中存储的 IP 地址和请求时间。

现在创建一个指向音乐文件的链接,如 playfile.php?file=music.mp3 或其他。只需确保 PHP 将处理文件请求。如果您混淆此链接,将更难找到它。

在 playfile.php 中检查 cookie 中的唯一代码,并检查它是否与 session 中的 IP 地址相匹配,请求时间是否小于 EG 15 秒(任何更长的时间,如果互联网连接速度慢,音乐将无法播放) .如果是,则流式传输文件。如果不是,请阻止它。

现在,如果有人愿意编写程序/脚本来下载音乐,他就可以了。但是,如果有人有知识和时间去做,没有什么能阻止他下载它。

这将阻止任何普通用户下载它。

关于php - jPlayer Stream MP3 但防止下载和盗链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13987067/

相关文章:

php - 如何创建具有相同路径但不同 http 方法的 2 个操作 Symfony2

php - PHP 中的花括号表示法

javascript - 在 foreach 循环中中断 setTimeout 函数

jquery - 取消 jquery 可拖动对象或重置

javascript - 拖放并更改dom中div的父级

php - 简单的电子邮件联系表

Javascript 阻止输入文件提交到数据库

jquery - AngularJS 中的连接对象

javascript - 为嵌入式脚本重置 CSS

jquery - 强制 Jquery-UI Datepicker 在输入下打开?