.htaccess, чтобы разрешить только из Cloudflare с указанным IP-адресом X-Forward-For

Я хочу разрешить людям доступ к моей странице с указанного IP. Однако, Я за Cloudflare. Единственный способ получить IP-адрес пользователя - это заголовок X-Forwarded-For . Но я не могу доверять X-Forwarded-For , потому что люди могут обойти Cloudflare и получить прямой доступ к IP-адресу моего сервера (предположим, что они могут угадать IP-адрес моего сервера).

Итак, я хочу разрешить список конкретных X-Forwarded-For IP-адресов, которые принадлежат Cloudflare. Я знаю список IP-адресов из Cloudflare . Вот что у меня получилось. Это правильно?

SetEnvIF X-Forwarded-For "x.x.x.x" AllowIP

<RequireAny>

    <RequireAll>

        <RequireAny>
            Require ip 199.27.128.0/21
            Require ip 173.245.48.0/20
            Require ip 103.21.244.0/22
            Require ip 103.22.200.0/22
            Require ip 103.31.4.0/22
            Require ip 141.101.64.0/18
            Require ip 108.162.192.0/18
            Require ip 190.93.240.0/20
            Require ip 188.114.96.0/20
            Require ip 197.234.240.0/22
            Require ip 198.41.128.0/17
            Require ip 162.158.0.0/15
            Require ip 104.16.0.0/12
            Require ip 172.64.0.0/13
        </RequireAny>

        Require env AllowIP
    </RequireAll>

    Require ip 127.0.0.1
</RequireAny>

И еще кое-что. Как я могу разрешить СПИСОК X-Forward-For IP вместо только одного указанного IP.

Резюме вопроса

  • Правильно ли мой .htaccess и безопасно?
  • Как разрешить список IP вместо указанного IP из X-Forwarded-For .
2
задан 27 February 2017 в 18:03
1 ответ

Как разрешить список IP вместо указанного IP из X-Forward-For .

У вас может быть несколько директив SetEnvIf . (?)

Обратите внимание, что xxxx является регулярным выражением, поэтому вы можете выразить это как (1 \ .1 \ .1 \ .1 | 2 \ .2 \ .2 \ .2 | 3 \ .3 \ .3 \ .3) , если IP-адресов всего несколько. (Не забывайте избегать точек.)

1
ответ дан 3 December 2019 в 12:36

Теги

Похожие вопросы