【发布时间】:2013-01-07 02:20:29
【问题描述】:
我有一个页面,用户可以在其中收听一些歌曲,这些歌曲是使用 JavaScript 播放的,因此如果您查看页面源代码,您会看到歌曲的完整路径,用户只需下载歌曲即可。
我如何拒绝所有试图访问该文件的人访问这些歌曲 (.mp3),但我的页面上的 JavaScript 代码访问该文件除外?
【问题讨论】:
-
您可以尝试使用 HTTP_REFERER 或 HTTP_USER_AGENT 之类的 HTTP 字段:JS 可以请求 mp3 说出某些内容,而服务器只有在拥有该信息时才会提供音乐。最终用户仍然可以轻松地欺骗系统,因为他可以从 JS 中提取该信息,但这会让他更加恼火。再说一次,你永远不能让用户无法获取文件:如果它在他的计算机上播放,他就可以获取它。如果您真的允许用户下载文件,那么每个人都会更容易。
-
或者将文件存储在 web 根目录之外,并编写一个服务器端实用程序通过 ajax 请求获取和返回 mp3。还要设置较低的权限,即 chmod 555 *.mp3