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.

Hassan Baig
fonte

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.

Mike Scott
fonte
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
Sindre
fonte