HTTP X-Forwarded-For Header

Der HTTP-Header X-Forwarded-For ist ein Request-Header, der die ursprüngliche Client-IP-Adresse durch Proxy- und Load-Balancer-Ketten transportiert. Jeder Proxy fügt die vorherige Client-IP hinzu, Origin-Server können echte Client-IP für Rate-Limiting und Geolocation extrahieren.

Typ

Request-Header

Syntax

Der Header listet IP-Adressen in Traversierungs-Reihenfolge.

http
X-Forwarded-For: 203.0.113.42
X-Forwarded-For: 203.0.113.42, 198.51.100.17, 192.0.2.60

Direktiven

Die Direktiven definieren IP-Adress-Kette durch Proxies.

client-ip
Erste IP-Adresse ist ursprüngliche Client-IP vor erstem Proxy.
proxy1-ip, proxy2-ip
Nachfolgende IPs sind Proxies in Traversierungs-Reihenfolge, jeder Proxy fügt vorherige Hop-IP hinzu.
leftmost-ip
Leftmost IP ist meist vertrauenswürdigste Client-IP, aber manipulierbar durch Client.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für den X-Forwarded-For-Header.

Beispiel 1 Single Proxy

http
GET /api/data HTTP/1.1
Host: api.example.com
X-Forwarded-For: 203.0.113.42

Client mit IP 203.0.113.42 verbindet über einen Proxy, Server sieht echte Client-IP für Rate-Limiting.

Beispiel 2 Multi-Proxy Chain

http
GET / HTTP/1.1
Host: example.com
X-Forwarded-For: 198.51.100.5, 203.0.113.195, 192.0.2.43

Request durchläuft 3 Proxies: Client 198.51.100.5 → Proxy1 203.0.113.195 → Proxy2 192.0.2.43 → Server.

Beispiel 3 Cloud Load Balancer

http
GET /checkout HTTP/1.1
Host: shop.example.com
X-Forwarded-For: 203.0.113.78, 10.0.1.5
X-Forwarded-Proto: https

Cloud Load-Balancer fügt interne IP 10.0.1.5 hinzu, Server extrahiert 203.0.113.78 für Fraud-Detection.

X-Forwarded-For Proxy Chain Flow

X-Forwarded-For Proxy-Chain-Ablauf

Vorteile für die Systemarchitektur

  • Rate-Limiting: Server kann echte Client-IP für Throttling verwenden statt Proxy-IP
  • Geolocation: IP-basierte Content-Lokalisierung funktioniert hinter Load-Balancern
  • Security Analytics: Fraud-Detection und Access-Logs enthalten tatsächliche Client-Origins

Spezifikation

RFC 7239 – Forwarded HTTP Extension (standardisiert X-Forwarded-*) https://www.rfc-editor.org/rfc/rfc7239.html

Weitere Spezifikationen

Forwarded Header, X-Forwarded-Host Header, Via Header