我正在音乐门户网站上工作,音乐家可以上传他的音乐。音乐下载通过付款流程。我正在使用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]
感谢。
答案 0 :(得分:0)
该文件需要在jPlayer(或任何其他HTML5音频播放器)中公开访问。重写规则不会有太大的好处,因为这个文件仍然可以从重写的URL访问(或者如果不是,它将无法使用w / jplayer)。
我能够提出的最佳解决方案是隐藏脚本中的文件名 - 技术非常低,但它会让99.9%的用户无法发现直接网址。很多人都很好奇地查看来源并寻找链接,但如果它比这更复杂,大多数人都不会打扰。
因此对于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中更好地隐藏其位置。