[英]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
中的所有文件都无法通过网站访问,但我不知道该怎么做。 有人可以帮忙吗?
我尝试过的事情:
从apache2.conf
文件中删除索引,如上所述。 它仅将 403 放在目录本身上,而不是递归地放置在其中的所有文件上。
如下所述编写.htaccess
文件: https://fedingo.com/how-to-prevent-direct-file-download-in-apache-server/并将其放入intern
中,结果与 1) 相同
在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.