Når en HTTP proxy fremover trafikk til en webserver, ser proxy IP-adresse i stedet for den opprinnelige klienten IP-adressen til serveren. Siden serveren kan trenge inn IP-adressen for logging eller autentiseringsformål, mange HTTP proxyer legge til en X-Forwarded-For header indikerer den originale klienten IP-adresse.
WsgiUnproxy er en WSGI mellomvare som sitter mellom WSGI serveren og din WSGI søknad. & Nbsp; Før søknaden din ser en forespørsel, fjerner WsgiUnproxy X-Forwarded-For header og gjeninnsetter klienten IP-adresse, noe som ga en forespørsel som ser ut som det var aldri proxy til å begynne med.
Siden hvem som helst kan legge til en X-Forwarded-For header, WsgiUnproxy bruker bare overskriften om det kommer fra en klarert proxy IP-adresser.
Eksempel WSGI program
fra wsgiunproxy import unproxy
unproxy (trusted_proxies = ['1.2.3.4', '5.6.7.8'])
def program (miljø, start_response):
& Nbsp; start_response ('200 OK', [])
& Nbsp; tilbake ['Din IP-adresse er% s.' % Environ.get ('REMOTE_ADDR')]
Bruk med Paste Deployment
WsgiUnproxy kan brukes i en Paste Deployment rørledning:
[Rørledning: main]
rørledning =
& Nbsp; WsgiUnproxy
& Nbsp; MyApp
[Filter: WsgiUnproxy]
bruk = egg: WsgiUnproxy
trusted_proxies = 1.2.3.4, 5.6.7.8
Avansert bruk
Hvis du trenger å oppgi en rekke troverdige fullmakter (for eksempel en hel subnett), trenger du ikke å bruke gi trusted_proxies som en liste. Alt som WsgiUnproxy ber om er at trusted_proxies støtter i operatøren (for eksempel ved å implementere __contains __)
Krav .
- Python
Kommentarer ikke funnet