Der HTTP-Header X-Forwarded-For
dient der Weitergabe ursprünglicher IP-Adressen bei Weiterleitung einer Anfrage durch einen Proxy bzw. ein CDN. Auf diese Weise erhält der Server wichtige Informationen über den Client, die ansonsten durch die Verwendung des Proxies verloren gehen würden.
Aufbau
Im einfachsten Fall wird der Aufruf nur von einem System weitergeleitet, das dadurch selbst als Aufrufer in Erscheinung tritt und die ursprüngliche IP-Adresse im X-Forwarded-For
-Header weitergibt.
Beispiel:
X-Forwarded-For: 109.41.193.0
Wird der Aufruf von mehreren Systemen weitergereicht, wird jede weitere Station mit einem Komma an die bestehende Liste angehängt. Die letzte Station steht nicht in der Liste, sondern tritt selbst als Aufrufer auf. Die Adresse des ursprünglichen Aufrufers ist dabei stets die erste auf der linken Seite der Aufzählung.
Beispiel:
X-Forwarded-For: 109.41.193.0, 87.79.3.1
Nutzen und Verwendung
Bei einer direkten Anfrage kann der Server anhand der IP-Adresse eine serverseitige Standortbestimmung von Kunden durchführen. Mit diesen Daten kann der Server Schutzmaßnahmen wie Web Application Firewalls und statistische Auswertungen der Besucher einer Webseite vornehmen. Bei einer Anfrage über einen Proxy bzw. ein CDN würde das nicht funktionieren, wenn der Proxy bzw. CDN die IP-Adresse nicht weitergibt.
Während manche serverseitige Software die Daten aus dem X-Forwarded-For
-Header automatisch berücksichtigt, muss andere ausdrücklich entsprechend konfiguriert werden.
X-Forwarded-For abschalten
Manche Server können den X-Forwarded-For
-Header in der beschriebenen Form nicht verstehen. Falls der Server damit Probleme hat, kann man das Senden dieses Headers durch wao.io in den erweiterten Einstellungen einer Domain abschalten.