Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

X-Forwarded Для- ( XFF ) HTTP - заголовка поля является распространенным методом для идентификации создаваемого IP - адреса клиента , соединяющего к веб - серверу через HTTP - прокси или балансировки нагрузки .

X-Forwarded-ForЗаголовок запроса HTTP был введен в Squid разработчиков кэширования прокси - сервера. [ необходима цитата ]

X-Forwarded-Forтакже является заголовком электронной почты, указывающим, что сообщение электронной почты было переадресовано из одной или нескольких других учетных записей (возможно, автоматически). [1]

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

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

Форматировать [ редактировать ]

Общий формат поля: [2]

X-Forwarded-For: клиент, прокси1, прокси2

где значение представляет собой список IP-адресов, разделенных запятыми + пробелами, крайний левый - это исходный клиент, а каждый последующий прокси-сервер, который передал запрос, добавляет IP-адрес, от которого он получил запрос. В этом примере запрос прошел через proxy1, proxy2, а затем через proxy3 (не показан в заголовке). proxy3 отображается как удаленный адрес запроса.

Примеры: [3]

X-Forwarded-For: 203.0.113.195, 70.41.3.18, 150.172.238.178X-Forwarded-For: 203.0.113.195X-Forwarded-For: 2001: db8: 85a3: 8d3: 1319: 8a2e: 370: 7348

Поскольку поле X-Forwarded-For легко подделать, данную информацию следует использовать с осторожностью. Самый правый IP-адрес - это всегда IP-адрес, который подключается к последнему прокси-серверу, что означает, что это самый надежный источник информации. Данные X-Forwarded-For могут использоваться в сценарии прямого или обратного прокси.

Простого протоколирования поля X-Forwarded-For не всегда достаточно, поскольку последний IP-адрес прокси в цепочке не содержится в поле X-Forwarded-For, он находится в фактическом IP-заголовке. Веб-сервер должен регистрировать ОБА IP-адреса источника запроса и информацию поля X-Forwarded-For для полноты.

Прокси-серверы и механизмы кеширования [ править ]

Поле X-Forwarded-For поддерживается большинством прокси-серверов, включая A10 Networks , aiScaler , [4] Squid , [5] Apache mod_proxy, [6] Pound , [7] HAProxy , [8] [9] Varnish , [ 10] IronPort Web Security Appliance, [11] AVANU WebMux, Array Networks , Radware AppDirector, Alteon ADC, ADC-VX и ADC-VA, F5 Big-IP , [12] Blue Coat ProxySG, [13] CiscoCache Engine, McAfee Web Gateway, Phion Airlock, Finjan's Vital Security, NetApp NetCache , jetNEXUS, Crescendo Networks 'Maestro, Web Adjuster, Websense Web Security Gateway, [14] Microsoft Forefront Threat Management Gateway 2010 (TMG) [15] и NGINX. [16]

Ведение журнала X-Forwarded-For поддерживается многими веб-серверами, включая Apache. IIS также может использовать HTTP-модуль для этой фильтрации. [17] [18] [19]

Zscaler замаскирует заголовок X-Forwarded-For с помощью Z-Forwarded-For перед добавлением собственного заголовка X-Forwarded-For, идентифицирующего исходный IP-адрес клиента. Это предотвращает утечку внутренних IP-адресов из узлов принудительного выполнения Zscaler и предоставляет сторонним поставщикам контента истинный IP-адрес клиента. Это приводит к HTTP-запросу, не соответствующему RFC.

Балансировщики нагрузки [ править ]

  • AVANU WebMux Network Traffic Manager, решение для балансировки сетевой нагрузки для доставки приложений, по умолчанию вставляет заголовок X-Forwarded-For в режиме одной сети с одной защитой и доступен как вариант фермы в режимах Two-Armed NAT, Two-Armed Transparent и One -Режимы прямого возврата на вооруженный сервер. [20]
  • Barracuda Load Balancer от Barracuda Networks поддерживает определяемые пользователем заголовки, такие как X-Forwarded-For, для вставки IP-адреса клиента в запрос клиента. [21]
  • NetScaler от Citrix Systems поддерживает пользовательские поля, такие как X-Forwarded-For, для вставки IP-адреса клиента в запрос клиента. [22]
  • Модули балансировки нагрузки Cisco ACE также могут вставлять это поле, обычно реализуемое, когда балансировщик нагрузки настроен на выполнение NAT источника , чтобы позволить балансировщику нагрузки существовать в одноручной конфигурации , обеспечивая при этом механизм, который реальные серверы могут использовать для учета для IP-адреса источника клиента. В ссылке упоминается x-forward, однако можно заменить X-Forwarded-For. [23]
  • Балансировщики нагрузки F5 Networks поддерживают X-Forwarded-For для одноручных и многоручных конфигураций. [24] Big-IP также может быть настроен для делегирования доверия прокси-серверам на расстоянии более одного перехода и приема пользовательских заголовков X-Forwarded-For из других источников. [25]
  • Виртуальные балансировщики нагрузки LineRate поддерживают X-Forwarded-For через конфигурацию диска из командной строки или через скрипты node.js. [26]
  • KEMP Technologies LoadMaster поддерживает X-Forwarded-For для непрозрачной балансировки нагрузки как в однопользовательской, так и в многоручной конфигурации. [27]
  • Coyote Point Systems Equalizer поддерживает поля X-Forwarded-For для балансировки нагрузки как в конфигурации с одной рукой, так и с конфигурацией с несколькими руками. [28]
  • Реле OpenBSD могут вставлять и / или изменять это поле. [29]
  • Сервис Amazon Elastic Load Balancing поддерживает это поле.
  • LBL LoadBalancer поддерживает X-Forwarded-For для одноручных и многоручных конфигураций.
  • Radware AppDirector ADC, Alteon ADC, ADC-VX и ADC-VA поддерживают вставку заголовка X-Forwarded-For для трафика, который является Source NAT, к серверам, а также обеспечивают постоянство трафика на основе X- Заголовок Forwarded-For для распределения трафика от прокси-соединения на несколько серверов с сохранением устойчивости к серверам.
  • Loadbalancer.org Корпоративные балансировщики нагрузки по умолчанию поддерживают балансировку нагрузки X-Forwarded-For [30]

Альтернативы и варианты [ править ]

RFC 7239 стандартизировал ForwardedHTTP-заголовок с аналогичным назначением, но с большим количеством функций по сравнению с X-Forwarded-ForHTTP-заголовком. [31] Пример Forwardedсинтаксиса заголовка:

Перенаправлено: for = 192.0.2.60; proto = http; by = 203.0.113.43

HAProxy определяет протокол PROXY, который может передавать IP-адрес исходного клиента без использования заголовка X-Forwarded-Forили Forwarded. [32] Этот протокол может использоваться в нескольких транспортных протоколах и не требует проверки внутреннего протокола, поэтому он не ограничивается HTTP.

См. Также [ править ]

  • Конфиденциальность в Интернете
  • Список прокси-программного обеспечения
  • X-Originating-IP для эквивалента SMTP
  • Список полей заголовка HTTP

Ссылки [ править ]

  1. ^ "{название}" . Архивировано из оригинала на 2014-09-20 . Проверено 5 мая 2014 .
  2. ^ "squid: follow_x_forwarded_for директива конфигурации" . Squid-cache.org . Проверено 12 ноября 2017 года .
  3. ^ "X-Forwarded-For" . Веб-документы MDN . Проверено 6 ноября 2020 .
  4. ^ «Руководство администратора, страница 152» (PDF) . Aiscaler.com . Проверено 12 ноября 2017 года .
  5. ^ SquidFaq / ConfiguringSquid - вики-сайт Squid Web Proxy . Wiki.squid-cache.org (06.02.2012). Проверено 24 декабря 2012.
  6. ^ mod_proxy - HTTP-сервер Apache . Httpd.apache.org. Проверено 24 декабря 2012.
  7. ^ Прокси-сервер Pound в разделе «Регистрация запросов»
  8. ^ Руководство по настройке HAProxy . haproxy.1wt.eu. Проверено 24 декабря 2012.
  9. ^ haproxy.1wt.eu . haproxy.1wt.eu. Проверено 24 декабря 2012.
  10. ^ Varnish FAQ архивации 29 марта 2008, в Wayback Machine относительно лесозаготовок
  11. ^ Устройства сетевой безопасности IronPort . Ironport.com (26 ноября 2012 г.). Проверено 24 декабря 2012.
  12. ^ «Использование« X-Forwarded-For »в Apache или PHP» . devcentral.f5.com.
  13. ^ Статья 000010319 базы знаний Bluecoat . Kb.bluecoat.com (29.06.2009). Проверено 6 марта 2014.
  14. ^ "Использование" X-Forwarded-For "в Websense WSG" . Websense.com . Проверено 12 ноября 2017 года .
  15. ^ «Winfrasoft - X-Forwarded-For - для TMG, ISA Server и IIS» . Winfrasoft.com . Проверено 12 ноября 2017 года .
  16. ^ "Обратный прокси NGINX - NGINX" . Nginx.com . Проверено 12 ноября 2017 года .
  17. ^ Winfrasoft XFF для IIS . Winfrasoft.com
  18. ^ Расширенное ведение журнала IIS . Iis.net (10 августа 2009 г.). Проверено 5 июня 2013.
  19. ^ X-Forwarded-For HTTP-модуль для IIS7, источник включен! Автор: Джо Прюитт Devcentral.f5.com. (2013-07-05).
  20. ^ "Технические ресурсы WebMux - Балансировка сетевой нагрузки доставки приложений" . Avanu.com . Проверено 12 ноября 2017 года .
  21. ^ Inc, Barracuda Networks. «Службы HTTP (S) уровня 7» . Кампус Барракуда . Проверено 12 ноября 2017 года .
  22. ^ Руководство по управлению трафиком Citrix NetScaler - выпуск 9.1 ... Support.citrix.com. Проверено 24 декабря 2012.
  23. ^ Cisco ACE с исходным NAT и заголовком IP клиента . Cisco.com. Проверено 24 декабря 2012.
  24. ^ Использование поля заголовка HTTP X-Forwarded-For для сохранения исходного IP-адреса клиента для трафика, транслируемого с помощью SNAT . Support.f5.com (26 сентября 2012 г.). Проверено 24 декабря 2012.
  25. ^ Обзор заголовка Trusted X-Forwarded-For . Support.f5.com (26 сентября 2012 г.). Проверено 24 декабря 2012.
  26. ^ Вставка заголовка X-Forwarded-For с LineRate (29.12.2014) Дата обращения 05.10.2015 .
  27. ^ Руководство по продукту LoadMaster . Kemptechnologies.com. Проверено 24 декабря 2012.
  28. ^ Руководство пользователя эквалайзера . Coyotepoint.com. Проверено 24 декабря 2012.
  29. ^ Страница руководства relayd.conf . Openbsd.org (29.11.2017). Проверено 4 февраля 2018.
  30. ^ Loadbalancer.org X- forwarded -for .Loadbalancer.org. Проверено 15 декабря 2017.
  31. ^ Петерссон, А; Нильссон, М. (июнь 2014 г.). Перенаправленное расширение HTTP . IETF . DOI : 10,17487 / RFC7239 . RFC 7239 . Проверено 20 февраля 2020 года .
  32. ^ Вилли Тарро: Протокол ПРОКСИ . haproxy.1wt.eu. Проверено 24 декабря 2012.

Внешние ссылки [ править ]

  • Apache mod_extract_forwarded