Apache, використовуй X-Forwarded-For для дозволу


13

Як можна використовувати заголовки X-Forwarded-For (мій проксі ip 10.1.1.x), щоб дозволити HTTP-запит?

Відповіді:


23

Ви можете використовувати SetEnvIf та Allow:

    <Location "/only_proxy/">
            SetEnvIf X-Forwarded-For ^10\.1\.1\. proxy_env
            Order allow,deny
            Satisfy Any
            Allow from env=proxy_env
    </Location>

1
Пам'ятайте, що підробляти заголовок X-Forwarded-For дуже просто.
Оллі

Також досить легко захистити себе від підроблених заголовків X-Forwarded-For (знімаючи цей заголовок у точках входу у ваше оточення).
larsks

1
Ви знайшли цю публікацію, шукаючи інформацію про те, як захистити від підроблених заголовків x, переданих напередодні, чи не хотіли б ви вказати на відповідного документа?
Піт

2

Ви можете використовувати mod_rpaf, щоб Apache ставився до X-Forwarded-For IP як клієнтський IP.


7
Для тих, хто знайшов свій шлях тут від Google: зауважте, що mod_rpafце лише може зробити ваші журнали корисними; це фактично не впливає на адресу, що використовується у рішеннях щодо контролю доступу. Також зауважте, що в Apache 2.4 mod_rpafфункціональність надається mod_remoteip .
larsks

1
@larsks: Це неправда. Я спробував, і це спрацювало для мене!
confiq

2

Ви можете написати правило переписати для переадресації на відповідь 403.

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-For} !(1.1.1.1|2.2.2.2)
RewriteRule .* - [F]
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.