重复"Deny from x.x.x.x"和"Allow from all"是否正确



我使用以下语法来阻止我的。htaccess文件中的一些ip:

DirectoryIndex index.php
order allow,deny
deny from 17.18.19.0
deny from 18.17.19.1
allow from all

现在我不确定我是否可以使用这个:

DirectoryIndex index.php
order allow,deny
deny from 18.17.19.1
allow from all
deny from 18.15.19.1
allow from all
deny from 18.18.19.1
allow from all

我可以重复这个结构吗?

deny from x.x.x.x
allow from all

我为什么要问?因为我发现php脚本只是在文件末尾追加deny,我不确定我是否需要"allow from all"行。

可以是这样吗?

DirectoryIndex index.php
order allow,deny
allow from all
deny from 17.18.19.0
deny from 18.17.19.1
deny from ... etc.

首先,这个文档页面做了很好的解释。

以下引用来自mod_authz_host的文档

Order指令,以及Allow和Deny指令,控制一个三通道访问控制系统。第一步流程命令中指定的所有允许或拒绝指令指令。第二遍解析其余的指令(Deny或允许)。第三步应用于所有不匹配的请求

注意所有的Allow和Deny指令都会被处理,不像典型的防火墙,其中只使用第一个匹配项。最后一场比赛是有效的(也不像典型的防火墙)。此外,订单在配置文件中出现的行并不重要——所有允许线路作为一组处理,所有拒绝线路作为一组处理作为另一个考虑,默认状态由自身考虑。

换句话说,如果您有Order Allow,Deny,它将首先处理所有Allow指令,然后处理所有Deny指令。你可能会发现,如果你有1个Allow from all或100个Allow from all指令,这并不重要。最终的结果是相同的,但是如果有100条这样的指令,服务器将需要更多的时间来处理。然后,它将处理所有deny指令,并在需要时覆盖您刚刚给予的权限。

因此,您只需要一个Order Allow,Deny指令和一个Allow from all指令。无论您使用的是什么脚本,都可以在它认为合适的情况下附加Deny指令,所有这些都将按预期工作。

最新更新