gpt4 book ai didi

apache - htaccess "order"拒绝、允许、拒绝

转载 作者:行者123 更新时间:2023-12-02 14:14:08 26 4
gpt4 key购买 nike

我只想允许一个国家/地区访问,但排除该国家/地区内的代理。

这就是我所拥有的(为了方便起见,缩短了版本)

<Limit GET POST>
order deny,allow
deny from all
allow from 139.82.0.0/16
allow from 143.54.0.0/16
allow from 186.192.0.0/11
allow from 186.224.0.0/11
.
deny from 186.201.27.66
deny from 186.201.196.1
deny from 186.214.51.231
deny from 186.237.225.26
</Limit>

但我知道这行不通。我该如何去做呢?

最佳答案

更新:对于新的apache 2.4直接跳到最后。

Order关键字及其与 DenyAllow 指令的关系是一场真正的噩梦。了解我们如何最终得到这样的解决方案将是非常有趣的,至少可以说这是一个不直观的解决方案。

  • 第一个重要的一点是,Order 关键字将对 AllowDeny 指令的使用方式产生重大影响。
  • 其次,DenyAllow 指令不按其编写顺序应用,它们必须被视为两个不同的 block (其中一个是 for Deny 指令,其中一个表示允许)。
  • 第三,它们与防火墙规则截然不同:所有规则都会应用,该过程在第一次匹配时不会停止

您有两种主要模式:

拒绝订单允许模式,或允许除此列表或可能不之外的任何人

Order Deny,Allow
  • 这是默认允许模式。您可以选择指定拒绝规则。
  • 首先,拒绝规则拒绝一些请求。
  • 如果有人被拒绝,您可以通过允许让他们回来。

我将其改写为:

Rule Deny
list of Deny rules
Except
list of Allow rules
Policy Allow (when no rule fired)

订单允许拒绝模式,或拒绝所有人,除了-this-list-or-maybe-not

Order Allow,Deny
  • 这是默认拒绝模式。因此,您通常会指定允许规则。
  • 首先,某人的请求必须至少符合一条允许规则。
  • 如果有人匹配允许,您仍然可以使用拒绝拒绝他们。

简化形式:

Rule Allow
list of Allow rules
Except
list of Deny rules
Policy Deny (when no rule fired)

返回您的案例

您需要允许国家/地区网络的网络列表。在这个国家/地区,您希望排除某些代理的 IP 地址。

您已采用allow-anyone- except-this-list-or-maybe-not模式,因此默认情况下任何人都可以访问您的服务器,代理除外IP 列在拒绝 列表中,但如果它们被拒绝,您仍然允许国家/地区网络。这太宽泛了。不好。

通过反转到订单允许、拒绝,您将处于拒绝所有人-除了-this-list-or-maybe-not模式。因此,您将拒绝所有人的访问,但允许国家/地区网络,然后您将拒绝代理。当然,您必须删除 @Gerben 和 @Michael Slade 所说的 Deny from all (此答案仅解释了他们所写的内容)。

Deny from all 通常与 order Deny,allow 一起使用,以删除默认允许访问并进行简单、可读的配置。例如,在此之后指定允许的 IP 列表。您不需要该规则,并且您的问题是 3 路访问模式的完美案例(默认策略、异常(exception)、异常(exception)的异常(exception))。

但是设计这些设置的人肯定是疯了。

Apache 2.4 已弃用所有这些

整个授权方案已在 Apache 2.4 中进行了重构RequireAll , RequireAnyRequireNone指令。例如,参见this complex logic example .

因此,旧的奇怪的 Order 逻辑已成为历史,并引用新文档:

Controling how and in what order authorization will be applied has been a bit of a mystery in the past

关于apache - htaccess "order"拒绝、允许、拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9943042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com