使用落后的CloudFlare Yii2访问规则来限制IPS操作

问题描述 投票:1回答:2

环境:IIS 8落后的CloudFlare代理

我使用的是背后的CloudFlare Yii2访问规则来限制IPS,不使用CloudFlare的代理时,工作正常操作。我想代理通过CloudFlare的,所以我可以使用他们的一些特点,但如果我现在做的Yii看到CloudFlare的服务器地址,而不是客户端的IP。

我相信,通过IPS的Yii2艾策斯规则限制措施使用REMOTE_ADDR头,我想用头HTTP_CF_CONNECTING_IP。就如何更好地实现这一目标的任何想法?

我是不是最好通过Yii2使用一个代理或IIS本身或实现这...?

yii2 iis-8 cloudflare
2个回答
1
投票

您需要配置Request::$trustedHosts您代理的IP地址范围和Request::$ipHeaders到允许的头,这将被用来获得使用IP列表。例如,在你的web配置:

'request' => [
    // ...
    'trustedHosts' => [
        '10.0.2.0/24' => [
            'HTTP_CF_CONNECTING_IP',
        ],
    ],
    'ipHeaders' => [
        'HTTP_CF_CONNECTING_IP',
    ],
],

请确保您在trustedHosts正确配置IPS - 它匹配指定范围内的所有主机都可以伪造用户IP发送HTTP_CF_CONNECTING_IP头。

你可以阅读更多关于guide信任代理。


0
投票

只是为了确认我已经用我的web.config以下这个工作

'request' => [ // ... 'trustedHosts' => [ '103.21.244.0/22' => [ 'cf-connecting-ip', ], // ... ], 'ipHeaders' => [ 'cf-connecting-ip', ], ],

CloudFlare的IP地址可以在这里找到:Cloudflare IP Range

© www.soinside.com 2019 - 2024. All rights reserved.