我們聽說一個好的安全實踐是重置虛擬主機中的所有內容以不允許任何內容,然後使用另一個指令來允許特定存取 - 如下所示:
<VirtualHost *:80>
DocumentRoot /home/example/public_html
<Directory />
AllowOverride None
Order Deny,Allow
Deny from all
</Directory>
<Directory /home/example/public_html >
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
</VirtualHost>
這有點道理,但我們不確定,所以希望就最好的設定方式提出一些意見。
答案1
如果您確實使用<Directory />
此處編寫的指令,則您不會對該虛擬主機進行任何更改,而是會為該目錄一遍又一遍地聲明相同的覆蓋/
。
因此,這些選項沒有執行任何操作,或者在最好的情況下,僅<Directory />
應用遇到的最後一部分:
https://httpd.apache.org/docs/current/sections.html#merging
如果每個虛擬主機的該部分看起來都相同,則不會導致問題,但如果某些虛擬主機不同且虛擬主機的數量隨著時間的推移而變化,則很難確定<Directory />
應用了哪個指令。
我將從<Directory />
所有虛擬主機中刪除該部分並在全域配置中聲明一次。