Quando un proxy HTTP inoltra il traffico verso un server web, il server vede l'indirizzo IP del proxy invece che l'indirizzo IP del client originale. Dal momento che il server può essere necessario l'indirizzo IP per scopi di registrazione o di autenticazione, molti proxy HTTP aggiungere un'intestazione X-Forwarded-For che indica l'indirizzo IP del client originale.
WsgiUnproxy è un middleware WSGI che si trova tra il server WSGI e la vostra applicazione WSGI. & Nbsp; Prima che l'applicazione vede una richiesta, WsgiUnproxy rimuove l'intestazione X-Forwarded-For e ripristina l'indirizzo IP del client, ottenendo una richiesta che sembra non è mai stato Proxied per cominciare.
Poiché chiunque può aggiungere un'intestazione X-Forwarded-For, WsgiUnproxy utilizza solo l'intestazione se proviene da un indirizzo IP del proxy di fiducia.
Esempio di applicazione WSGI
da wsgiunproxy unproxy importazione
unproxy (trusted_proxies = ['1.2.3.4', '5.6.7.8'])
applicazione def (environ, start_response):
& Nbsp; start_response ('200 OK', [])
& Nbsp; di ritorno ['Il tuo indirizzo IP è% s.' % Environ.get ('REMOTE_ADDR')]
Utilizza con Deployment Incolla
WsgiUnproxy può essere utilizzato in una conduttura di distribuzione Incolla:
[Oleodotto: main]
conduttura =
& Nbsp; WsgiUnproxy
& Nbsp; MyApp
[Filtro: WsgiUnproxy]
uso = uovo: WsgiUnproxy
trusted_proxies = 1.2.3.4, 5.6.7.8
Uso avanzato
Se è necessario specificare un sacco di deleghe di fiducia (come ad esempio una intera sottorete), non è necessario usare dare trusted_proxies come una lista. Tutto ciò che WsgiUnproxy chiede è che trusted_proxies supporta l'operatore in (ad esempio, mediante l'attuazione di __contains __)
Requisiti .
- Python
I commenti non trovato