X-Forwarded-For - это HTTP-заголовок, который используется для идентификации IP-адреса исходящего пользователя. Мне было интересно, "где" этот заголовок добавляется в запросе и "кто" на самом деле добавляет его? Это ваш браузер? ваш провайдер? Может быть, HTTP-сервер? или целевой сервер? Из источника в место назначения, где он добавляется, например, сразу после того, как ваш браузер сгенерировал запрос, или, возможно, после вашего провайдера, или непосредственно перед сервером назначения или "добавлен ли он во входящий запрос"?
2 ответа
Этот заголовок обычно вставляется прямым прокси-сервером только в том случае, если имеется вышестоящий прокси-сервер, которому необходимо идентифицировать отправителя, в противном случае, если прямой прокси-сервер вставил этот заголовок для запросов через Интернет, это обычно считается утечкой потенциально конфиденциального Информация.
Поэтому он редко используется для прямых прокси-серверов и в основном используется обратными прокси-серверами для идентификации интернет-клиента с внутренним веб-сервером, поскольку веб-серверы за обратными прокси-серверами обычно видят, что все соединения исходят из внутреннего интерфейса обратного прокси-сервера.
Альтернативы этому - протокол Proxy, который отправляет эти данные по соединению до фактического запроса в другом формате, - обратный NAT, который сохраняет IP-адрес внешнего клиента в обратном соединении.
В других случаях вы видите, что X-Forwarded-For на практике - это когда некоторые клиенты вставляют заголовок, чтобы попытаться получить повышенные привилегии, если обратный прокси-сервер передает значение, например.
В случае прямого прокси-сервера (прокси-сервера, используемого вашим веб-сервером) этот заголовок может быть добавлен прокси-сервером для указания IP-адресов исходного пользователя, чтобы веб-серверы, находящиеся в пути, знали, что IP-адрес создает запрос - который будет прокси - не тот IP, который фактически сделал запрос.
В случае обратного прокси-сервера (размещенного перед веб-серверами для выполнения кэширования, TLS, обслуживания статического содержимого и т.д.) Этот заголовок содержит IP-адрес пользователя-отправителя, видимый обратным прокси-сервером (серверами, расположенными за ним). будут видеть все запросы, поступающие с IP-адреса обратного прокси-сервера, поэтому этот заголовок необходим для того, чтобы они знали, какой реальный IP-адрес отправил запрос).
Конечно, если прокси не задействованы, этот заголовок не существует.