När en HTTP-proxy vidarebefordrar trafiken till en webbserver, ser proxy IP-adress i stället för den ursprungliga klient IP-adress till servern. Eftersom servern kan behöva IP-adressen för loggning eller autentiseringsändamål, många HTTP proxies lägga till en X-överlämnat-För rubrik som anger den ursprungliga klienten IP-adress.
WsgiUnproxy är en WSGI middleware som sitter mellan WSGI servern och din WSGI ansökan. & Nbsp; Innan din ansökan ser en begäran WsgiUnproxy bort X-överlämnat-För huvudet och återinförs klientens IP-adress, vilket gav en begäran som ser ut som det var aldrig proxade till att börja med.
Eftersom vem som helst kan lägga till en X-överlämnat-För huvudet, bara WsgiUnproxy använder huvudet om det kommer från en betrodd proxy IP-adresser.
Exempel WSGI program
från 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; tillbaka ['Din IP-adress är% s.' % Environ.get ('REMOTE_ADDR')]
Använd med Klistra Distribution
WsgiUnproxy kan användas i en Klistra Distribution rörledning:
[Pipeline: main]
rörledning =
& Nbsp; WsgiUnproxy
& Nbsp; MyApp
[Filter: WsgiUnproxy]
användning = ägg: WsgiUnproxy
trusted_proxies = 1.2.3.4, 5.6.7.8
Avancerat användning
Om du behöver ange en hel del betrodda proxyservrar (t.ex. en hel subnät), behöver du inte använda ge trusted_proxies som en lista. Allt som WsgiUnproxy frågar är att trusted_proxies stöder i operatör (t.ex. genom att genomföra __contains __)
Krav .
- Python
Kommentarer hittades inte