在 Cloudflare 后面使用 Yii2 访问规则来限制 ips 的操作
Using Yii2 Access Rules behind Cloudflare to restrict actions by ips
环境:Cloudflare 代理后面的 IIS 8
我在 Cloudflare 后面使用 Yii2 访问规则来限制 IPS 的操作,这在不使用 Cloudflare 代理时工作正常。我想通过 Cloudflare 进行代理,这样我就可以使用他们的一些功能,但是如果我现在这样做,Yii 会看到 Cloudflare 服务器地址而不是客户端 IP。
我相信 Yii2 访问规则限制 IPS 的行为使用 REMOTE_ADDR
header,我想使用 header HTTP_CF_CONNECTING_IP
。关于如何最好地实现这一点有什么想法吗?
我是通过带有覆盖的 Yii2 还是 IIS 本身或...来最好地实现这一点?
您需要将 Request::$trustedHosts
to IPs range of your proxy and Request::$ipHeaders
配置为允许的 header 列表,这些列表将用于获取使用 IP。例如在您的网络配置中:
'request' => [
// ...
'trustedHosts' => [
'10.0.2.0/24' => [
'HTTP_CF_CONNECTING_IP',
],
],
'ipHeaders' => [
'HTTP_CF_CONNECTING_IP',
],
],
确保在 trustedHosts
中正确配置 IP - 所有匹配指定范围的主机都可以通过发送 HTTP_CF_CONNECTING_IP
header.
伪造用户 IP
您可以在 guide 中阅读更多关于可信代理的信息。
只是为了确认我在我的 web.config
中使用以下内容可以正常工作
'request' => [
// ...
'trustedHosts' => [
'103.21.244.0/22' => [
'cf-connecting-ip',
],
// ...
],
'ipHeaders' => [
'cf-connecting-ip',
],
],
可在此处找到 Cloudflare IP:Cloudflare IP Range
环境:Cloudflare 代理后面的 IIS 8
我在 Cloudflare 后面使用 Yii2 访问规则来限制 IPS 的操作,这在不使用 Cloudflare 代理时工作正常。我想通过 Cloudflare 进行代理,这样我就可以使用他们的一些功能,但是如果我现在这样做,Yii 会看到 Cloudflare 服务器地址而不是客户端 IP。
我相信 Yii2 访问规则限制 IPS 的行为使用 REMOTE_ADDR
header,我想使用 header HTTP_CF_CONNECTING_IP
。关于如何最好地实现这一点有什么想法吗?
我是通过带有覆盖的 Yii2 还是 IIS 本身或...来最好地实现这一点?
您需要将 Request::$trustedHosts
to IPs range of your proxy and Request::$ipHeaders
配置为允许的 header 列表,这些列表将用于获取使用 IP。例如在您的网络配置中:
'request' => [
// ...
'trustedHosts' => [
'10.0.2.0/24' => [
'HTTP_CF_CONNECTING_IP',
],
],
'ipHeaders' => [
'HTTP_CF_CONNECTING_IP',
],
],
确保在 trustedHosts
中正确配置 IP - 所有匹配指定范围的主机都可以通过发送 HTTP_CF_CONNECTING_IP
header.
您可以在 guide 中阅读更多关于可信代理的信息。
只是为了确认我在我的 web.config
中使用以下内容可以正常工作'request' => [
// ...
'trustedHosts' => [
'103.21.244.0/22' => [
'cf-connecting-ip',
],
// ...
],
'ipHeaders' => [
'cf-connecting-ip',
],
],
可在此处找到 Cloudflare IP:Cloudflare IP Range