O X-FORWARDED-FOR pode conter vários IPs


13

Pode X-FORWARDED-FORconter vários endereços IP? Se sim, por quê? Um exemplo ilustrativo seria ótimo.

Respostas:


22

Sim, se uma solicitação for encadeada por mais de um servidor proxy, cada proxy deverá adicionar o IP do anterior ao cabeçalho X-Forwarded-For existente, para que toda a cadeia seja preservada.


Eu nunca vi um proxy que acrescenta a um valor existente. Alguma citação para isso?
precisa

4
Experiência pessoal. Passei muito tempo analisando cabeçalhos X-Forwarded-For recebidos por um site grande e, na verdade, não é incomum ver dois ou três endereços IP no cabeçalho.
Mike Scott

4
Mas também veja o artigo da Wikipedia aqui: en.m.wikipedia.org/wiki/X-Forwarded-For . Ele diz que "o valor é uma lista de endereços IP separados por vírgula + espaço, o mais à esquerda sendo o cliente original e cada proxy sucessivo que passou na solicitação, adicionando o endereço IP de onde recebeu a solicitação".
Mike Scott

Gostaria de saber se é um proxy em particular fazendo isso. Fascinante. Na minha experiência, o nginx não lida com isso dessa maneira.
precisa

1
@ceejayoz se você estiver usando projetos de código aberto como o nginx e escreva seu cabeçalho como "SET xff = clientIP", ele nunca será anexado. A maioria dos aparelhos comerciais, quer anexar ou conjunto se o atributo está indisponível networkinghowtos.com/howto/...
Jacob Evans

2

De https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For

X-Forwarded-For: <client>, <proxy1>, <proxy2>

Se uma solicitação passar por vários proxies, os endereços IP de cada proxy sucessivo serão listados. Isso significa que o endereço IP mais à direita é o endereço IP do proxy mais recente e o endereço IP mais à esquerda é o endereço IP do cliente de origem.

Exemplos:

X-Forwarded-For: 2001:db8:85a3:8d3:1319:8a2e:370:7348

X-Forwarded-For: 203.0.113.195

X-Forwarded-For: 203.0.113.195, 70.41.3.18, 150.172.238.178
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.