Der X-Forwarded-For (XFF) ist ein De-facto-Standard-HTTP-Header-Eintrag im Internet. Der Header dient dazu, die IP-Adresse des Clients zu übermitteln, wenn dieser durch einen Proxy oder eine andere Netzwerkkomponente, die die Quell-IP-Adresse verändert, auf einen Webserver zugreift.
Ein Anwendungsfall für die Übermittlung dieses Headers sind Internet Service Provider (ISP), die die Kunden entweder ermutigen oder zwingen (im Fall von AOL bei Verwendung der hauseigenen Software oder bei einigen Mobilfunknetzbetreibern zur Kompression), einen Proxy-Server des ISPs zu nutzen. In einigen Fällen sind diese Proxys transparent und arbeiten lediglich als Cache, da der Traffic dann nicht mehr das Netz des Providers verlassen muss (und damit den ISP weniger kostet).
Bei nicht-transparenten Proxys hingegen ist dem Gegenüber nur die IP-Adresse des Proxys bekannt, er hat keinen Einblick in die reale Adresse des Clients. Dies macht den Proxy zu einem Anonymisierungsdienst. XFF wurde geschaffen, um dem Server die Möglichkeit zu geben, Clients eindeutig zu identifizieren. Ohne den XFF-Header würde ein Webserver nur die IP-Adresse des Proxys sehen, aber nicht die echte IP-Adresse des Clients.
Format
BearbeitenX-Forwarded-For: client1, proxy1, proxy2
client1 ist die ursprüngliche IP-Adresse des Clients. proxy1 und proxy2 sind die IP-Adressen der dazwischengeschalteten Proxys. Die erste IP-Adresse ist immer die des Originalclients und die letzte die des Proxys, der den Request vor dem Proxy durchgeleitet hat, dessen IP-Adresse der Server sieht (proxy2).
Beispiele:
X-Forwarded-For: 203.0.113.195, 70.41.3.18, 150.172.238.178 X-Forwarded-For: 203.0.113.195 X-Forwarded-For: 2001:db8:85a3:8d3:1319:8a2e:370:7348
Der XFF-Header ist dadurch für Fälschungen anfällig. Abhilfe schafft hier eine Liste von bekannten, vertrauenswürdigen Proxys – wenn alle beteiligten Proxys auf einer solchen Liste verzeichnet sind, so ist anzunehmen, dass die übergebene Client-IP-Adresse korrekt ist.
Software
BearbeitenXFF-Senden wird von vielen Proxys unterstützt, u. a. Squid,[1] Apache mod_proxy,[2] Pound,[3] Varnish Cache,[4] IronPort Web Security Appliance,[5] Citrix NetScaler, F5 Big-IP, Blue Coat ProxySG, Cisco Cache Engine, Finjan’s Vital Security, NetApp NetCache, USP Secure Entry Server, jetNEXUS, Crescendo Networks’ Maestro, Microsoft ISA Server 2004/2006 mit der Erweiterung Winfrasoft X-Forwarded-For for ISA Server und McAfee Web Gateway.