我们听说一个好的安全实践是重置虚拟主机中的所有内容以不允许任何内容,然后使用另一个指令来允许特定访问 - 如下所示:
<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 />
所有虚拟主机中删除该部分并在全局配置中声明一次。