Khi một proxy HTTP chuyển tiếp lưu lượng tới một máy chủ web, máy chủ sẽ thấy địa chỉ IP proxy thay vì địa chỉ IP khách hàng ban đầu. Vì máy chủ có thể cần các địa chỉ IP cho các mục đích khai thác gỗ hoặc chứng thực, nhiều proxy HTTP thêm một header X-Forwarded-For chỉ ra địa chỉ IP của khách hàng ban đầu.
WsgiUnproxy là một trung WSGI mà ngồi giữa các máy chủ WSGI và ứng dụng WSGI của bạn & nbsp;. Trước khi ứng dụng của bạn thấy một yêu cầu, WsgiUnproxy loại bỏ các tiêu đề X-Forwarded-For và reinstates địa chỉ IP của khách hàng, đạt yêu cầu mà có vẻ như nó không bao giờ đã đặt proxy để bắt đầu với.
Vì bất cứ ai có thể thêm một tiêu đề X-Forwarded-For, WsgiUnproxy chỉ sử dụng các tiêu đề nếu nó xuất phát từ một địa chỉ IP proxy đáng tin cậy.
Ví dụ ứng dụng WSGI
từ wsgiunproxy unproxy nhập khẩu
unproxy (trusted_proxies = ['1.2.3.4', '5.6.7.8'])
ứng dụng def (environ, start_response):
& Nbsp; start_response ('200 OK', [])
& Nbsp; return ['địa chỉ IP của bạn là% s. " % Environ.get ('REMOTE_ADDR')]
Sử dụng với Paste Deployment
WsgiUnproxy có thể được sử dụng trong một đường ống Paste Triển khai:
[Đường ống: chính]
đường ống dẫn =
& Nbsp; WsgiUnproxy
& Nbsp; MyApp
[Filter: WsgiUnproxy]
sử dụng = trứng: WsgiUnproxy
trusted_proxies = 1.2.3.4, 5.6.7.8
sử dụng chi tiết
Nếu bạn cần phải xác định rất nhiều proxy đáng tin cậy (như toàn bộ một subnet), bạn không cần phải sử dụng cung cấp cho trusted_proxies như một danh sách. Tất cả WsgiUnproxy mà hỏi là trusted_proxies hỗ trợ trong điều hành (ví dụ như bằng cách thực hiện __contains __)
Yêu cầu .
- Python
Bình luận không