我刚刚将我的 Apache 服务器更新为在 Ubuntu 13.04 下运行的 Apache/2.4.6。我曾经有一个包含以下内容的虚拟主机文件:
<Directory "/home/john/development/foobar/web">
AllowOverride All
</Directory>
但是当我运行时,我得到了“禁止。您无权访问/”
在进行了一些谷歌搜索后,我发现要让我的网站再次运行,我需要添加以下行“要求全部授予”,以便我的虚拟主机看起来像这样:
<Directory "/home/john/development/foobar/web">
AllowOverride All
Require all granted
</Directory>
我想知道这是否“安全”并且不会带来任何安全问题。我在 Apache 的页面上读到,这“模仿了以前由‘全部允许’和‘全部拒绝’指令提供的功能。该提供程序可以采用‘授予’或‘拒绝’两个参数之一。以下示例将授予或拒绝对所有请求的访问。”
但它没有说这是否是某种安全问题,或者为什么我们现在必须这样做,而过去你不必这样做。
访问控制配置在 2.4 中发生了变化,旧的配置不做一些改动是不兼容的。见这里。
如果您的旧配置是
Allow from all
(没有阻止访问服务的 IP 地址),那么Require all granted
新的功能等效。在 Apache 2.2 中会是这样的:
在 Apache 2.4 中会是这样的:
使用
.htaccess
身份验证时要小心,这种新语法可能会做一些不好的和意想不到的事情,如果这是你的情况,请阅读: Apache 2.4 要我决定:需要有效的 ip 或需要有效的用户,你应该没问题!