繁体   English   中英

如何禁用 Apache2 网络服务器中的文件下载?

[英]How to disable the download of files in an Apache2 webserver?

我接管了一个我应该管理的网站,有人提请我注意某些索引和文件可用,但不应该。 我将使用虚拟名称。

您之前可以访问example.com/intern ,但我根据此https://stackoverflow.com/a/31445273/etc/apache2/apache2.conf中更改了一行。 这部分有效,因为当我现在导航到example.com/intern时得到 403-Forbidden,这基本上就是我想要的。

但是, intern目录管理一个名为file.php.bak以及file.php的文件。 当我导航到example.com/intern/file.php时,我得到一个白色网站。 但是,我不确定您是否能够以另一种方式访问file.php ,因为该站点确实加载并且我没有像以前那样得到 403。 更糟糕的是,我为此苦苦挣扎的原因是:如果我 go 到example.com/intern/file.php.bak那么我的浏览器(Firefox)让我下载file.php.bak纯文本。 我希望intern中的所有文件都无法通过网站访问,但我不知道该怎么做。 有人可以帮忙吗?

我尝试过的事情:

  1. apache2.conf文件中删除索引,如上所述。 它仅将 403 放在目录本身上,而不是递归地放置在其中的所有文件上。

  2. 如下所述编写.htaccess文件: https://fedingo.com/how-to-prevent-direct-file-download-in-apache-server/并将其放入intern中,结果与 1) 相同

  3. intern目录下放一个空的index.html文件。 这导致example.com/intern/file.php.bak中不再有 403,但在example.com/intern上的下载仍然是可能的。 我也尝试过index.php ,结果相同。

文件系统:

该应用程序从/var/www/application运行,这也是我要使用的/var/www/application/index.php的文件夹。 /var/www/application/intern目录也在那里。 虽然它不再可浏览,但其中的文件仍然可以访问。 /var/www/application/intern/file.php可以通过example.com/intern/file.php导航到,但似乎无法下载或读取它,因为它会导致白页。 /var/www/application/intern/file.php.bak但是可以通过example.com/intern/file.php.bak下载。

假设 Apache 文档根设置为 DocumentRoot " /folder_one/folder_two "

将文件放在folder_one将阻止人们浏览您的 apache 服务器并直接请求文件。

将索引文件放在folder_two并包含一些代码,例如 PHP 告诉 apache 包含您想要从folder_one中的任何文件。

在这个庄园中,Apache 仍然可以从folder_one提供您想要的任何文件,并且人们将无法直接请求这些文件,因为它们位于 Apache 文档根目录上方的目录中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM