Spec-Zone.ru › Werkzeug 3.0

Коррекция прокси X-Forwarded-For

Этот модуль предоставляет миддлварь, которая корректирует WSGI environ на основе заголовков X-Forwarded-, которые могут устанавливать прокси перед приложением.

Когда приложение работает за прокси-сервером, WSGI может воспринимать запрос как исходящий от этого сервера, а не от реального клиента. Прокси устанавливают различные заголовки для отслеживания того, откуда фактически исходит запрос.

Эта миддлварь должна использоваться только в том случае, если приложение действительно находится за таким прокси, и должна быть настроена с количеством прокси, которые подключены перед ним. Не все прокси устанавливают все заголовки. Поскольку входящие заголовки могут быть подделаны, вы должны указать, сколько прокси устанавливают каждый заголовок, чтобы миддлварь знала, чему доверять.

class werkzeug.middleware.proxy_fix.ProxyFix(app, x_for=1, x_proto=1, x_host=0, x_port=0, x_prefix=0)

Корректирует WSGI environ на основе заголовков X-Forwarded-, которые могут устанавливать прокси перед приложением.

  • X-Forwarded-For устанавливает REMOTE_ADDR.
  • X-Forwarded-Proto устанавливает wsgi.url_scheme.
  • X-Forwarded-Host устанавливает HTTP_HOST, SERVER_NAME, и SERVER_PORT.
  • X-Forwarded-Port устанавливает HTTP_HOST и SERVER_PORT.
  • X-Forwarded-Prefix устанавливает SCRIPT_NAME.

Вы должны указать миддлваре, сколько прокси устанавливают каждый заголовок, чтобы она знала, какие значения считать достоверными. Доверять значениям, полученным от клиента, а не от прокси, является проблемой безопасности.

Оригинальные значения заголовков хранятся в WSGI environ как werkzeug.proxy_fix.orig, словарь.

Параметры:
  • app (WSGIApplication) – WSGI-приложение, которое нужно обернуть.
  • x_for (int) – Количество значений, которым следует доверять для X-Forwarded-For.
  • x_proto (int) – Количество значений, которым следует доверять для X-Forwarded-Proto.
  • x_host (int) – Количество значений, которым следует доверять для X-Forwarded-Host.
  • x_port (int) – Количество значений, которым следует доверять для X-Forwarded-Port.
  • x_prefix (int) – Количество значений, которым следует доверять для X-Forwarded-Prefix.
from werkzeug.middleware.proxy_fix import ProxyFix
# App is behind one proxy that sets the -For and -Host headers.
app = ProxyFix(app, x_for=1, x_host=1)
Журнал изменений

Изменено в версии 1.0: Аргумент и атрибут num_proxies; метод get_remote_addr; и ключи environ orig_remote_addr, orig_wsgi_url_scheme, и orig_http_host были удалены.

Изменено в версии 0.15: Все заголовки поддерживают несколько значений. Каждый заголовок настраивается с отдельным числом доверенных прокси.

Изменено в версии 0.15: Оригинальные значения WSGI environ хранятся в словаре werkzeug.proxy_fix.orig.

Изменено в версии 0.15: Поддержка X-Forwarded-Port и X-Forwarded-Prefix.

Изменено в версии 0.15: X-Forwarded-Host и X-Forwarded-Port изменяют SERVER_NAME и SERVER_PORT.

© 2007 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/3.0.x/middleware/proxy_fix/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API