【发布时间】:2011-04-07 22:43:12
【问题描述】:
我有一个项目,我的客户将大量文件上传到服务器上的文件夹。可以使用系统管理员页面上的链接下载该文件(在 PHP 中)。
如何禁用对这些文件的直接访问(在浏览器地址中)?
【问题讨论】:
-
这个问题经常出现。尝试其中一些,并搜索该站点。 stackoverflow.com/questions/3990337/… 或 stackoverflow.com/questions/409496/…
我有一个项目,我的客户将大量文件上传到服务器上的文件夹。可以使用系统管理员页面上的链接下载该文件(在 PHP 中)。
如何禁用对这些文件的直接访问(在浏览器地址中)?
【问题讨论】:
将上传目录放在网络根目录之外的位置。例如,如果 Apache(或您正在使用的任何 Web 服务器)配置有 /var/www 的 Web 根目录,但上传的文件到例如/var/uploads,保证没有人可以直接下载它们(至少通过你的网络服务器)。
然后使用 PHP 脚本作为替代代理,首先检查用户是否经过身份验证和授权,然后使用例如passthru() 函数(当然是在设置适当的标题之后)让用户下载文件。
【讨论】: