Этот перевод обеспечивается StrongLoop / IBM.
Этот документ может быть устаревшим по отношению к документации на английском языке. Последние обновления содержатся в документации на английском языке.При запуске приложения Express за прокси-сервером, необходимо указать (с помощью app.set()) для переменной приложения trust proxy одно из значений, приведенных в таблице ниже.
Хотя приложение будет запущено и без указания значения переменной приложения trust proxy, отсутствие заданного значения trust proxy приведет к некорректной регистрации IP-адреса прокси в качестве клиентского IP-адреса.
| Тип | Значение |
|---|---|
| Булевский |
Если указано значение Если указано значение |
| IP-адреса |
IP-адрес, подсеть или массив IP-адресов и подсетей, считающихся надежными. В приведенном ниже списке перечислены предварительно заданные имена подсетей:
IP-адреса можно задать любым из указанных ниже способов:
Если IP-адреса или подсети указаны, они исключаются из процесса определения адреса, и незащищенный IP-адрес, ближайший к серверу приложений, будет определен как IP-адрес клиента. |
| Число |
Считать защищенным |
| Функция |
Реализация нестандартного механизма защиты. Используйте этот метод, только если вы уверены в своих знаниях.
|
Установка значения, отличного от false, для trust proxy ведет к трем существенным изменениям:
Значение req.hostname является производным от значения, указанного в заголовке X-Forwarded-Host, который может быть задан клиентом или прокси.
Заголовок X-Forwarded-Proto может быть задан обратным прокси-сервером и указывает приложению на использование протокола https, или http, или даже недопустимого имени. Это значение отражается в req.protocol.
Значения req.ip и req.ips заполняются собой списком адресов, взятых из X-Forwarded-For.
Параметр trust proxy реализуется с помощью пакета proxy-addr. Дополнительная информация приведена в документации к нему.