Wenn ein HTTP-Proxy leitet den Datenverkehr auf einen Webserver, sieht der Server die Proxy-IP-Adresse und nicht die ursprüngliche Client-IP-Adresse. Da der Server die IP-Adresse für die Anmeldung oder Authentifizierung benötigen, fügen viele HTTP-Proxies ein X-Forwarded-For-Header, die den ursprünglichen Client-IP-Adresse.
WsgiUnproxy ist ein WSGI Middleware, die zwischen dem WSGI Server und Ihrem WSGI Anwendung sitzt. & Nbsp; Vor der Anmeldung einen Antrag sieht, entfernt WsgiUnproxy die X-Forwarded-For-Header und wieder das Client-IP-Adresse, wodurch ein Wunsch, der aussieht, als wäre es nie Proxy zu beginnen.
Da jemand eine X-Forwarded-For-Header hinzufügen können, verwendet WsgiUnproxy nur die Kopfzeile, wenn sie von einer vertrauenswürdigen Proxy-IP-Adressen kommt.
Beispiel WSGI Anwendung
von wsgiunproxy import unproxy
unproxy (trusted_proxies = ['1.2.3.4', '5.6.7.8'])
def Anwendung (environ, start_response):
& Nbsp; start_response ('200 OK', [])
& Nbsp; return ['Ihre IP-Adresse ist% s. " % Environ.get ('REMOTE_ADDR')]
Verwenden Sie mit Paste Deployment
WsgiUnproxy in einer Paste Deployment-Pipeline verwendet werden:
[Pipeline: Haupt]
Pipeline =
& Nbsp; WsgiUnproxy
& Nbsp; MyApp
[Filter: WsgiUnproxy]
Verwendung = Ei: WsgiUnproxy
trusted_proxies = 1.2.3.4, 5.6.7.8
Erweiterte Nutzung
Wenn Sie brauchen, um eine Menge von vertrauenswürdigen Proxys (wie eine ganze Subnetz) angeben, müssen Sie nicht zu bedienen geben trusted_proxies als Liste. Alle, die WsgiUnproxy fragt ist, dass trusted_proxies unterstützt die in Betreiber (zB durch Umsetzung __contains __)
Anforderungen .
- Python
Kommentare nicht gefunden