wake-up-neo.com

Apache的“要求全部被授予”到底有什么用?

我刚刚将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'两个参数之一。或“拒绝”。以下示例将授予或拒绝对所有请求的访问权限。”

但是它并没有说这是否是某种安全问题,还是为什么我们现在必须这样做,而在过去您不必这样做。

98
John Crawford

访问控制配置在2.4中进行了更改,如果不进行一些更改,旧配置将不兼容。参见 此处

如果您的旧配置是Allow from all(没有阻止访问服务的IP地址),然后Require all granted是新的功能对等物。

93
Shane Madden

我知道这是一篇过时的文章,但我认为我可以使用我经常使用的功能示例来提供更多帮助!

在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 ,就可以了!

17
Luciano Andress Martini