我在 CentOS 7 上运行 Apache。我已经配置了多个虚拟主机。它们的根目录位于/var/www/html/{example.com, sub1.example.com, etc.}
. 我还配置了一个000-default.conf
vhost 以将所有传入流量(其中一个虚拟主机未覆盖)重定向到主文档根目录 ( /var/www/html
) 并显示一个空白页面。
但是知道我面临一个严重的安全问题:如果访问者被重定向到带有空白 index.html 文件的文档根目录,他可以在 URL 后面附加“/example.com”并访问该目录。这可能看起来并不危险,但想象一下,例如,如果在那里安装了一个 Laravel 应用程序,它有一个公用文件夹 ( /var/www/html/example.com/public
)。然后访问者将能够浏览 laravel 目录及其所有配置文件!
我怎样才能防止这种情况?
您可以使用以下 apache 指令阻止目录列表:
您可以在 httpd.conf 中为特定目录全局设置此设置,使用如下
<Directory </Directory>
块或使用.htaccess
目录内的文件。如需进一步参考:目录列表配置