Apache-2.2

限制對 apache 文件根目錄的訪問,但不限制子域

  • February 17, 2016

我在 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 目錄及其所有配置文件!

我怎樣才能防止這種情況?

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

Options -Indexes

您可以在 httpd.conf 中為特定目錄全域設置此設置,使用如下<Directory </Directory>塊或使用.htaccess目錄中的文件。

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

如需進一步參考:目錄列表配置

引用自:https://serverfault.com/questions/757828