X-FORWARDED-FOR può contenere più IP


13

Può X-FORWARDED-FORcontenere più indirizzi IP? Se è così, perché? Un esempio illustrativo sarebbe fantastico.

Risposte:


22

Sì, se una richiesta è concatenata attraverso più di un server proxy, ciascun proxy dovrebbe aggiungere l'IP del precedente all'intestazione X-Forwarded-For esistente in modo da preservare l'intera catena.


Non ho mai visto un proxy che si aggiunge a un valore esistente. Qualche citazione per questo?
Ceejayoz,

4
Esperienza personale. Ho trascorso molto tempo ad analizzare le intestazioni X-Forwarded-For ricevute da un sito Web di grandi dimensioni e in realtà non è raro vedere due o tre indirizzi IP nell'intestazione.
Mike Scott,

4
Ma vedi anche l'articolo di Wikipedia qui: en.m.wikipedia.org/wiki/X-Forwarded-For . Dice "il valore è un elenco separato da virgole + spazio di indirizzi IP, il più a sinistra è il client originale e ogni proxy successivo che ha passato la richiesta aggiungendo l'indirizzo IP da cui ha ricevuto la richiesta".
Mike Scott,

Mi chiedo se è un proxy in particolare a farlo. Affascinante. Nella mia esperienza, nginx non la gestisce in questo modo.
Ceejayoz,

1
@ceejayoz se stai usando progetti open source come nginx e scrivi la tua intestazione come "SET xff = clientIP" non verrà mai aggiunta. La maggior parte degli apparecchi commerciali aggiunge o imposta se l'attributo non è disponibile in retehowtos.com/howto/…
Jacob Evans

2

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

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

Se una richiesta passa attraverso più proxy, vengono elencati gli indirizzi IP di ciascun proxy successivo. Ciò significa che l'indirizzo IP più a destra è l'indirizzo IP del proxy più recente e l'indirizzo IP più a sinistra è l'indirizzo IP del client di origine.

Esempi:

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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.