Gdy serwer HTTP proxy przekazuje ruch do serwera WWW, serwer widzi adres IP serwera proxy, a nie oryginalny adres IP klienta. Ponieważ serwer może potrzebować adres IP dla celów logowania lub autoryzacji, wiele Serwer proxy HTTP dodać nagłówek X-Przekazano-wskazujący oryginalny adres IP klienta.
WsgiUnproxy jest middleware WSGI, który znajduje się pomiędzy serwerem WSGI i aplikacji WSGI. & Nbsp; Przed aplikacja widzi wniosek, WsgiUnproxy usuwa nagłówek X-Przekazano-Na i przywraca adres IP klienta, otrzymując wniosek, który wygląda jak nigdy nie było proxy, aby rozpocząć.
Ponieważ każdy może dodać nagłówek X-Przekazano-For, tylko WsgiUnproxy wykorzystuje nagłówek, jeśli pochodzi z zaufanych adresów IP proxy.
aplikacji Przykład WSGI
z wsgiunproxy importu unproxy
unproxy (trusted_proxies = ['1.2.3.4', '5.6.7.8'])
Aplikacja def (environ, start_response):
& Nbsp; start_response ("200 OK", [])
& Nbsp; return ["Twój adres IP jest% s." % Environ.get ('REMOTE_ADDR')]
Skorzystaj z wdrażania Wklej
WsgiUnproxy można stosować w rurociągu rozmieszczenia Wklej:
[Rurociągu: main]
Rurociąg =
& Nbsp; WsgiUnproxy
& Nbsp; MyApp
[Filtr: WsgiUnproxy]
Zastosowanie = jaj: WsgiUnproxy
trusted_proxies = 1.2.3.4, 5.6.7.8
Zastosowanie Zaawansowane
Jeśli chcesz określić wiele zaufanych serwerów proxy (jak cały podsieci), nie musisz używać dać trusted_proxies w postaci listy. Wszystko to WsgiUnproxy pyta jest to, że trusted_proxies wspiera w operatora (np realizacji __contains __)
Wymagania .
- Python
Komentarze nie znaleziono