限制对 Apache 文档根目录的访问,但不限制对子域的访问

限制对 Apache 文档根目录的访问,但不限制对子域的访问

我在 CentOS 7 上运行 Apache。我配置了多个虚拟主机。它们的根目录位于/var/www/html/{example.com, sub1.example.com, etc.}。我还配置了一个000-default.confvhost 来将所有传入流量(未被其中一个虚拟主机覆盖)重定向到主文档根目录 ( /var/www/html) 并显示空白页。

但我现在面临一个严重的安全问题:如果访问者被重定向到包含空白 index.html 文件的文档根目录,他可以在 URL 后附加“/example.com”并访问此目录。这似乎并不危险,但想象一下,如果例如 Laravel 应用程序安装在那里,它有一个公共文件夹 ( /var/www/html/example.com/public)。那么访问者将能够浏览 laravel 目录及其所有配置文件!

我该如何预防?

答案1

您可以使用以下 apache 指令来阻止目录列表:

Options -Indexes

您可以在 httpd.conf 中全局设置此项,对于特定目录,使用<Directory </Directory>下面的块或使用.htaccess目录内的文件进行设置。

<Directory /var/www/html/example.com/public>
  Options -Indexes
</Directory>

进一步参考:目录列表配置

相关内容