Cuando un proxy HTTP reenvía el tráfico a un servidor web, el servidor ve la dirección IP del proxy en lugar de la dirección IP cliente original. Desde el servidor puede necesitar la dirección IP para propósitos de registro o de autenticación, muchos proxies HTTP añadir una cabecera X-Forwarded-Para indicar la dirección IP cliente original.
WsgiUnproxy es un middleware WSGI que se encuentra entre el servidor WSGI y su aplicación WSGI & nbsp;. Antes de su aplicación ve una solicitud, WsgiUnproxy elimina la cabecera X-Forwarded-For y restablece la dirección IP del cliente, dando una petición que parece que nunca fue proxy para empezar.
Desde cualquiera puede añadir una cabecera X-Forwarded-For, WsgiUnproxy sólo utiliza la cabecera si proviene de una dirección IP de proxy de confianza.
Ejemplo de aplicación WSGI
desde unproxy importación wsgiunproxy
unproxy (trusted_proxies = ['1.2.3.4', '5.6.7.8'])
aplicación def (ambiental, start_response):
& Nbsp; start_response ('200 OK', [])
& Nbsp; de regreso ['Tu dirección IP es% s.' % Environ.get ('REMOTE_ADDR')]
Utilizar con despliegue Pegar
WsgiUnproxy se puede utilizar en una tubería de despliegue Pegar:
[Gasoducto: main]
tubería =
& Nbsp; WsgiUnproxy
& Nbsp; MyApp
[Filtro: WsgiUnproxy]
uso = huevo: WsgiUnproxy
trusted_proxies = 1.2.3.4, 5.6.7.8
utilización Avanzada
Si necesita especificar un montón de servidores proxy de confianza (como toda una subred), usted no tiene que utilizar dar trusted_proxies como una lista. Todo lo que WsgiUnproxy pide es que trusted_proxies soporta el operador in (por ejemplo, mediante la implementación de __contains __)
Requisitos .
- Python
Comentarios que no se encuentran