【问题标题】:How to deny/restrict access to a particular file type in a LAMP environment?如何在 LAMP 环境中拒绝/限制对特定文件类型的访问?
【发布时间】:2013-01-07 02:20:29
【问题描述】:

我有一个页面,用户可以在其中收听一些歌曲,这些歌曲是使用 JavaScript 播放的,因此如果您查看页面源代码,您会看到歌曲的完整路径,用户只需下载歌曲即可。

我如何拒绝所有试图访问该文件的人访问这些歌曲 (.mp3),但我的页面上的 JavaScript 代码访问该文件除外?

【问题讨论】:

  • 您可以尝试使用 HTTP_REFERER 或 HTTP_USER_AGENT 之类的 HTTP 字段:JS 可以请求 mp3 说出某些内容,而服务器只有在拥有该信息时才会提供音乐。最终用户仍然可以轻松地欺骗系统,因为他可以从 JS 中提取该信息,但这会让他更加恼火。再说一次,你永远不能让用户无法获取文件:如果它在他的计算机上播放,他就可以获取它。如果您真的允许用户下载文件,那么每个人都会更容易。
  • 或者将文件存储在 web 根目录之外,并编写一个服务器端实用程序通过 ajax 请求获取和返回 mp3。还要设置较低的权限,即 chmod 555 *.mp3

标签: php apache .htaccess lamp


【解决方案1】:

由于 JavaScript 在客户端上执行,并且您需要它来下载 mp3,因此您的客户端基本上已经拥有 mp3 -- 在他们的浏览器下载缓存文件夹中。

您最好加密 JavaScript 或事后动态加载它。尽管如此,如果客户对它的工作原理有所了解,他仍然会找到 MP3。

您唯一真正的选择是为浏览器添加一个新插件,该插件可以播放您以某种方式加密的文件。

如果您拒绝访问 *.mp3 文件,您的 JavaScript 也将无法播放该文件。

【讨论】:

    猜你喜欢
    • 2013-04-13
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-06
    相关资源
    最近更新 更多