Apache-2.2
限制對 apache 文件根目錄的訪問,但不限制子域
我在 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 指令阻止目錄列表:
Options -Indexes
您可以在 httpd.conf 中為特定目錄全域設置此設置,使用如下
<Directory </Directory>
塊或使用.htaccess
目錄中的文件。<Directory /var/www/html/example.com/public> Options -Indexes </Directory>
如需進一步參考:目錄列表配置