1

我正在开发音乐门户网站,音乐家可以上传他的音乐。音乐下载通过付款流程。我正在使用 JPlayer 播放音乐。

jplayer任何人都可以通过查看源代码和直接下载文件来查看音乐文件的路径。

如何防止文件直接访问。我尝试通过.htaccess但无法播放音乐。

为什么它不起作用

RewriteEngine on 

RewriteCond %{HTTP_REFERER} !^http://(www\.)?abc.com/trakvanapp/ [NC] 

RewriteCond %{HTTP_REFERER} !^http://(www\.)?abc.com/trakvanapp/.*$ [NC] 

RewriteRule \.(mp3)$ - [F]

谢谢。

4

1 回答 1

0

该文件需要可公开访问才能在 jPlayer(或任何其他 HTML5 音频播放器)中播放。重写规则不会有多大好处,因为这样文件仍然可以从重写的 url 访问(或者如果不是,它不会与 jplayer 一起工作)。

我能想出的最佳解决方案是隐藏脚本中的文件名 - 技术含量非常低,但它将阻止 99.9% 的用户发现直接 url。很多人好奇地查看源代码并寻找链接,但如果它比这更复杂,大多数人都不会打扰。

所以对于http://example.com/randomdirectoryname123/123random/mysong.mp3的文件,我使用:

var p1="http://";
var p3="randomdirectoryname123";
var p2="example";
var p4="123random";
var thefile="mysong";
var thelink = p1  + p2 + ".com/" + p3 + "/" + p4 + "/" + thefile + ".mp3";

...

$(this).jPlayer("setMedia", {
            mp3:thelink
        });

显然,这不是传递文件的实际安全方法——只是更好地向 Joe Blow 隐藏其位置。

于 2012-10-24T00:44:37.953 回答