Apache .htaccess 要求 ip 对 IPv6 的要求不够严格

Apache .htaccess 要求 ip 对 IPv6 的要求不够严格

假设我的 IPv6 是 1111:2222:3333:4444:5555:6666:7777:8888

我可以在 Apache .htaccess 中写入以下任何一行:

Require ip 1111:2222:3333:4444:0000:0000:0000:0000
Require ip 1111:2222:3333:0000::/64
Require ip 1111:2222:0000:0000::/64
Require ip 1111:2222:0000:0000:

我仍然可以访问该网站。Apache 似乎只测试了 IPv6 的前 2 个块。我是不是漏掉了什么?我如何才能真正限制到我的 IP?

答案1

您的示例 IP 均不位于同一个 /64 子网中,因此它们不可能全部与您的 IP 匹配。比较第 3 位和第 4 位数字组。


从 IP 地址开始,截掉最低有效位的数字。使用 CIDR 斜线表示法中剩余的位数。使用以下代码写出建议格式::: 压缩尽可能多的零

例如,取 IP 地址2001:db8:1622:c7bb:5919:8f34:f78e:aadd 将其减半,剩下 64 个有效位,因此:

Require ip 2001:db8:1622:c7bb::/64

这个 /64 应该是您的,就像您的众多子网之一一样。只有一个 IP 地址的允许列表没有充分利用地址空间。相反,将主机放在与其用途或安全区域一致的 /64 中。

当然,mod_authz_host 能够处理单个 IP 允许列表。如果您确实想要一个 IP 地址,它可以做到。

相关内容