Перейти к основному содержимому
Версия: 7.0

Описание

Trusted proxies используются для корректного получения IP-адреса клиента в случаях, когда запрос к бэкенду проходит через терминаторы, балансировщики, шлюзы или иные промежуточные узлы. В наших типовых конфигурациях, когда бэкенд стоит за единственным фронтендом и доступ к нему не осуществляется напрямую, приложение будет работать корректно и без дополнительных настроек. Тем не менее, есть случаи когда такая настройка необходима: требования регламентов, дополнительная защита от брутфорса, многоуровневые прокси.

Значения по умолчанию

  • Пассворк доверяет всем REMOTE_ADDR для извлечения конечного IP-адреса клиента;
  • IP-адрес извлекается из одного из заголовков, указанных в списке по умолчанию, если хотя бы один передан;
  • Доступ к бэкенду не ограничивается пока не задан хотя бы один адрес в TRUSTED_PROXIES.

CLIENT_IP_SOURCES

CLIENT_IP_SOURCES позволяет явно задать список заголовков, из которых будет извлекаться IP-адрес клиента.

Детали:

  • Могут быть указаны заголовки или серверная переменная REMOTE_ADDR;
  • Каждый указанный заголовок должен начинаться с префикса HTTP_;
  • Если указано хотя бы одно значение, используется только заданный список заголовков;
  • Можно передать несколько заголовков через запятую;
  • Приоритет обработки соответствует порядку перечисления: от первого к последнему;
  • Если переменная не задана — используется список заголовков по умолчанию. Этот список можно получить, выполнив php bin/console app:env:report.

Пример:

CLIENT_IP_SOURCES=HTTP_X-Forwarded-For,HTTP_X-Real-IP

TRUSTED_PROXIES

TRUSTED_PROXIES задаёт список доверенных прокси-серверов. Указывать нужно IP-адреса или CIDR-диапазоны прокси, значения которых соответствуют REMOTE_ADDR последнего узла перед приложением (например, балансировщика или ingress-контроллера).

Формат:

TRUSTED_PROXIES=192.168.1.10,10.0.0.0/16

Особенности:

  • Значения могут быть IP или CIDR;
  • Допускается перечисление через запятую;
  • При неправильном формате приложение вернёт ошибку конфигурации;
  • При отсутствии TRUSTED_PROXIES никакие запросы не блокируются.