Quand un proxy HTTP transmet le trafic à un serveur Web, le serveur voit l'adresse IP proxy plutôt que l'adresse IP du client d'origine. Depuis le serveur peut avoir besoin de l'adresse IP à des fins d'exploitation forestière ou d'authentification, de nombreux proxies HTTP ajouter un en-tête X-Forwarded-For indiquant l'adresse IP du client d'origine.
WsgiUnproxy est un middleware WSGI qui se trouve entre le serveur de WSGI et votre application WSGI & nbsp;. Avant votre application voit une demande, WsgiUnproxy supprime l'en-tête X-Forwarded-For et rétablit l'adresse IP du client, ce qui donne une requête qui ressemble comme il n'a jamais été mandaté pour commencer.
Puisque quiconque peut ajouter un en-tête X-Forwarded-For, WsgiUnproxy utilise uniquement l'en-tête si elle provient d'une des adresses IP de serveurs mandataires de confiance.
l'exemple d'application WSGI
de unproxy d'importation wsgiunproxy
unproxy (trusted_proxies = ['1.2.3.4', '5.6.7.8'])
demande de def (d'environnement, start_response):
& Nbsp; start_response ('200 OK', [])
& Nbsp; revenir ['Votre adresse IP est% s.' Environ.get% ('REMOTE_ADDR')]
Utiliser avec déploiement Coller
WsgiUnproxy peut être utilisé dans un pipeline de déploiement Coller:
[Pipeline: principale]
pipeline =
& Nbsp; WsgiUnproxy
& Nbsp; MyApp
[Filtre: WsgiUnproxy]
utilisation = oeuf: WsgiUnproxy
trusted_proxies = 1.2.3.4, 5.6.7.8
Utilisation avancée
Si vous avez besoin de spécifier un grand nombre de procurations de confiance (comme tout un sous-réseau), vous ne devez pas utiliser donner trusted_proxies comme une liste. Tout ce qui WsgiUnproxy demande est que trusted_proxies soutient le dans l'opérateur (par exemple par la mise en œuvre __contains __)
Exigences :.
- Python
Commentaires non trouvées