Описание
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.
Пример:
- shell
CLIENT_IP_SOURCES=HTTP_X-Forwarded-For,HTTP_X-Real-IP
TRUSTED_PROXIES
TRUSTED_PROXIES задаёт список доверенных прокси-серверов.
Указывать нужно IP-адреса или CIDR-диапазоны прокси, значения которых соответствуют REMOTE_ADDR последнего узла перед приложением (например, балансировщика или ingress-контроллера).
Формат:
- shell
TRUSTED_PROXIES=192.168.1.10,10.0.0.0/16
Особенности:
- Значения могут быть IP или CIDR;
- Допускается перечисление через запятую;
- При неправильном формате приложение вернёт ошибку конфигурации;
- При отсутствии
TRUSTED_PROXIESникакие запросы не блокируются.