不幸的是,在我推出的一款产品中,黑客发现他们可以访问我存放 zip 文件的不受保护的目录。我使用 PHP 通过 readfile() 提供这些 zip 文件,因此在我的应用程序中,人们通常无法通过 URL 访问这些文件。因此,为了解决这个问题,我在该目录中放置了一个空白的 index.php 文件。问题是,在论坛上看到实际 zip 文件名的人只需输入 URL 即可下载它,不幸的是,我的产品交付系统很复杂,不允许我更改该 URL 的名称。
我如何在该目录中创建一个 .htaccess 文件,以便人们无法通过 URL 从中下载任何内容,但允许我的 PHP readfile() 代码继续通过强制下载提供该文件?即使您只是猜测——我现在正在接受任何建议。我会继续尝试,直到在这里找到可行的方法。
再次强调,我只需要阻止浏览器直接访问人们在论坛上阅读的特定 zip 文件 URL。我认为通过文件系统而不是 Web 访问运行的 PHP readfile() 代码将继续正常工作。
答案1
如果您正在使用readfile()
,您可以将文件放在 htdocs 目录之外的任何位置,然后在那里通过 php 访问它们(确保 (php) 用户可以读取它们)。
或者(如果你必须把它们放在那里)你可以添加.htaccess
:
Order deny,allow
Deny from all
这将拒绝所有人(通过浏览器)访问,但 php(作为本地运行的服务)仍然可以通过 访问它readfile()
。