Apache, utilisez X-Forwarded-For pour autoriser


13

Comment utiliser les en-têtes X-Forwarded-For (mon proxy ip 10.1.1.x) pour autoriser la requête HTTP?

Réponses:


23

Vous pouvez utiliser SetEnvIf et 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
N'oubliez pas qu'il est très facile de forger l'en-tête X-Forwarded-For.
Olli

Il est également relativement facile de vous protéger contre les en-têtes X-Forwarded-For falsifiés (en supprimant cet en-tête aux points d'entrée dans votre environnement).
larsks

1
avez trouvé ce message en recherchant des informations sur la protection contre les en-têtes falsifiés transmis par x, cela vous dérangerait-il de pointer vers un document pertinent?
Pete

2

Vous pouvez utiliser mod_rpaf pour que Apache traite l'IP X-Forwarded-For comme l'IP client.


7
Pour ceux qui trouvent leur chemin ici à partir de Google: notez que cela mod_rpafne peut que rendre vos journaux utiles; il n'affecte pas réellement l'adresse utilisée dans les décisions de contrôle d'accès. Notez également que dans Apache 2.4, la mod_rpaffonctionnalité est fournie nativement par mod_remoteip .
larsks

1
@larsks: Ce n'est pas vrai. J'ai essayé et cela a fonctionné pour moi!
confiq

2

Vous pouvez écrire une règle de réécriture pour rediriger vers la réponse 403.

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-For} !(1.1.1.1|2.2.2.2)
RewriteRule .* - [F]
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.