Spec-Zone.ru › Werkzeug 2.1

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

Этот модуль предоставляет промежуточное ПО, которое настраивает WSGI-среду на основе заголовков 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-среды на основе заголовков 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-среде как 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.
Тип возвращаемого значения

None

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: Все заголовки поддерживают несколько значений. Аргумент num_proxies устарел. Каждый заголовок настраивается с отдельным количеством прокси, которым нужно доверять.

Изменено в версии 0.15: Оригинальные значения WSGI-среды хранятся в словаре werkzeug.proxy_fix.orig.orig_remote_addr, orig_wsgi_url_scheme, и orig_http_host устарели и будут удалены в версии 1.0.

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

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

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

Spec-Zone.ru

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