我刚刚将Apache服务器更新为在Ubuntu 13.04下运行的Apache/2.4.6。我曾经有一个虚拟主机文件,其中包含以下内容:
<Directory "/home/john/development/foobar/web">
AllowOverride All
</Directory>
但是当我跑步时,我得到了“禁止。您无权访问/”
经过一番谷歌搜索后,我发现要使我的网站再次运行,我需要添加以下行“ Require all grant”,以便我的虚拟主机看起来像这样:
<Directory "/home/john/development/foobar/web">
AllowOverride All
Require all granted
</Directory>
我想知道这是否“安全”,并且不会带来任何安全问题。我在Apache的 page 上读到,这“模仿了以前由'Allow from all'和'Deny from all'指令提供的功能。此提供程序可以采用'granted'两个参数之一。或“拒绝”。以下示例将授予或拒绝对所有请求的访问权限。”
但是它并没有说这是否是某种安全问题,还是为什么我们现在必须这样做,而在过去您不必这样做。
访问控制配置在2.4中进行了更改,如果不进行一些更改,旧配置将不兼容。参见 此处 。
如果您的旧配置是Allow from all
(没有阻止访问服务的IP地址),然后Require all granted
是新的功能对等物。
我知道这是一篇过时的文章,但我认为我可以使用我经常使用的功能示例来提供更多帮助!
在Apache 2.2中将像:
<Location />
Order deny, allow
allow from all
</Location>
<Location /adm>
Order deny, allow
deny from all
allow from myniceip
</Location>
<Location /disabled>
Order deny, allow
deny from all
</Location>
在Apache 2.4中将像:
<Location />
require all granted
</Location>
#Note that you dont need to use require all denied
#to require only a group of ips..
<Location /adm>
require ip myniceip
</Location>
<Location /disabled>
Require all denied
</Location>
要小心使用htacess身份验证时,此新语法可能会做一些坏的和意外的事情,如果您是这种情况,请阅读: https://unix.stackexchange.com/questions/413309/Apache-2-4-wants-me-to-decide-require-valid-ip-或-require-valid-user ,就可以了!