【问题标题】:Blocking of IP in .htaccess not working在 .htaccess 中阻止 IP 不起作用
【发布时间】:2019-12-17 02:15:27
【问题描述】:

我尝试在我的 .htaccess 中配置一个简单的 IP 地址块。 我遵循了在这个论坛中找到的示例,这些示例似乎对其他用户有效,但对我无效,我真的不明白为什么。

我的 .htaccess 文件很简单:

Order Allow,Deny
Allow from all
Deny from aaa.bbb.ccc.ddd

我预计配置的 IP 地址 (aaa.bbb.ccc.ddd) 将被阻止。但遗憾的是没有被屏蔽。

如果我在 .htaccess 的第三行设置了“全部拒绝”,所有访问都会按预期被阻止。

所以看起来指令是由 Apache 读取的,但是如果我设置了除“从所有”之外的任何其他内容 i。 e.主机名或 IP 或 IP 通配符等。不会发生阻塞。

感谢任何帮助,为我指明正确的方向。

谢谢 内斯特

【问题讨论】:

  • 您能否提供相关站点的 Apache 配置以及完整的 .htaccess 文件(以防您的问题尚未出现)?

标签: apache .htaccess mod-authz-host


【解决方案1】:

可能是红鲱鱼,但我想你的 .htaccess 块周围有标签?例如

<Limit GET POST>
  order allow,deny
  allow from all
  deny from 100.101.102.103
</Limit>

这就是我在我的一个网站上使用它的方式。

【讨论】:

  • 不,我的 .htaccess 块周围没有标签。我认为这种指令没有必要。必须尝试一下。谢谢。
  • 我尝试了带有限制标签的建议,但它没有解决我的问题。
【解决方案2】:

您确定您包含的 ip 地址是 Apache 看到的 ip 地址吗?如果服务器在负载均衡器后面,它将看到负载均衡器地址。

要克服这个问题,您需要检查 X-Forwarded-For 标头

        SetEnvIf X-Forwarded-For ^aaa\.bbb\.ccc\.ddd proxy_env
        Order allow,deny
        Satisfy Any
        deny from env=proxy_env

您显然可以通过查看日志来检查所看到的 IP 地址

【讨论】:

  • 我很确定是的。我从 apache 访问日志中复制了 IP。
【解决方案3】:

我最近遇到了一个类似的问题,这都是关于 IPv4 和 IPv6 的。查看您服务器的访问日志,并检查您的 IP 地址是如何记录的。您实际上可能会阻止 IPv4 地址,同时使用您的 IPv6 地址(未被阻止)访问您的 Web 服务器。

如果您无权访问这些日志,请尝试像阻止 IPv4 一样阻止您的 IPv6。您可以在这里找到您的 IPv6:http://whatismyv6.com/

Order Allow, Deny
Allow From All
Deny From [Your-IPv4]
Deny From [Your-IPv6]

【讨论】:

  • 我照原样从apache访问日志中复制了IP。
【解决方案4】:

我遇到了同样的问题,然后发现 .htaccess 文件混合了换行符(CR 和一些 CRLF)。删除文件并使用正确的回车再次创建它

【讨论】:

    【解决方案5】:

    经过一番搜索,我发现由于所有客户端首先允许然后被拒绝 htaccess 无法正常工作。我反向拒绝并允许在 .htaccess 最终以这种方式解决:

    Order Allow,Deny
    Deny from aaa.bbb.ccc.ddd
    

    以下 ip 禁止 403 和其他允许浏览。 (如果 .htaccess 在当前目录中,则不需要 Directory 标签)

    希望对你有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-09
      • 2014-05-18
      • 2015-04-21
      • 2011-06-01
      相关资源
      最近更新 更多