Proxys basieren auf der Annahme, dass sie dazu dienen, Anfragen von einem System an ein anderes weiterzuleiten. Sie fügen im Allgemeinen einen gewissen Mehrwert hinzu – sonst wären sie nicht in der Mitte – wie etwa Lastausgleich (Skalierung), Verhinderung von Datenlecks (Sicherheit) oder Komprimierung (Leistung).
Der Punkt ist, dass die vom Client gesendete Anfrage ansonsten unverändert an ihr Ziel weitergeleitet wird.
Hier kann es brenzlig werden. Heute nutzen mehr als die Hälfte aller über einen Proxy bereitgestellten Apps X-Forwarded-For. 56 % der echten, aktiven Apps verwenden es, was es zu einer ziemlich aussagekräftigen Information macht. X-Forwarded-For ist der benutzerdefinierte HTTP-Header, der die ursprüngliche IP-Adresse eines Clients überträgt, damit die App am anderen Ende weiß, um welche Adresse es sich handelt. Andernfalls würde nur die Proxy-IP-Adresse angezeigt und das würde einige Apps verärgern.
Der Grund hierfür ist, dass zahlreiche Anwendungen auf die Kenntnis der tatsächlichen IP-Adresse eines Clients angewiesen sind, um Betrug zu verhindern und den Zugriff zu ermöglichen. Wenn Sie sich kürzlich von einem anderen Gerät als dem, das Sie normalerweise verwenden, bei Ihrer Bank, bei Gmail oder bei Ihrem Xbox-Konto angemeldet haben (hey, dort befindet sich Minecraft , okay?), haben Sie möglicherweise eine Sicherheitswarnung erhalten. Denn auch die Information, von wo aus Sie sich einloggen, wird erfasst, unter anderem um Betrugsversuche und Missbrauch zu erkennen.
Ihre tatsächliche IP-Adresse wird außerdem verwendet, um in einigen Systemen den Zugriff zu erlauben oder zu verweigern und um Ihren physischen Standort abzuleiten. Deshalb enthalten diese E-Mail-Warnungen oft die Frage „Haben Sie sich aus Bulgarien angemeldet?“
Einige Systeme verwenden auch X-Forwarded-For, um die Zugriffskontrolle durchzusetzen. WordPress verwendet beispielsweise die .htaccess-Datei, um den Zugriff auf Basis von IP-Adressen auf eine Whitelist zu setzen. Nein, es ist nicht die beste Lösung, aber eine gängige und man muss ihnen zumindest Anerkennung dafür zollen, dass sie versuchen, einen gewissen Schutz der App vor Missbrauch bereitzustellen.
Unabhängig davon, ob es eine gute Idee ist oder nicht: Wenn Sie X-Forwarded-For als Teil Ihres Authentifizierungs- oder Autorisierungsschemas verwenden, sollten Sie nach besten Kräften sicherstellen, dass es sich tatsächlich um die echte Client-IP-Adresse handelt. Es handelt sich um einen der am häufigsten verwendeten Faktoren in der gesamten Sicherheitsgleichung; einer, der den Verbraucher ebenso schützt wie die Unternehmensinteressen.
Wenn Sie jedoch blind alles akzeptieren, was der Client Ihnen in diesem Header sendet, ermöglichen Sie es möglicherweise jemandem, den Wert zu fälschen und so Sicherheitsmechanismen zu umgehen, die unrechtmäßigen Zugriff verhindern sollen. Schließlich kann ich praktisch alles fälschen, was ich will, indem ich ein paar Zeilen Code schreibe oder mir eines der vielen Chrome-Plug-ins schnappe, mit denen ich HTTP-Header ganz einfach manipulieren kann.
Um sicherzustellen, dass Sie die tatsächliche IP-Adresse erhalten, können Sie beispielsweise den Benutzereingaben nicht vertrauen. Ja, da ist wieder die Sicherheitsregel Null . Vertrauen Sie niemals Benutzereingaben. Und wir wissen, dass HTTP-Header Benutzereingaben sind , ob sie nun so aussehen oder nicht.
Wenn Sie bereits einen Proxy haben, ist das großartig. Wenn nicht, sollten Sie sich eines zulegen. Denn nur so extrahieren und setzen Sie den richtigen Wert in X-Forwarded-For und stoppen Spoofer.
Grundsätzlich möchten Sie, dass Ihr Proxy in der Lage ist, auf eine Anfrage zuzugreifen und die tatsächliche IP-Adresse zu finden, die in seinem IP-Paket verborgen ist. Einige Proxys können dies per Konfiguration oder mithilfe von Richtlinien, andere erfordern etwas Programmier-Magie. Wie auch immer Sie es erhalten, das ist der Wert, den Sie in den HTTP-Header „X-Forwarded-For“ einfügen und dann wie gewohnt fortfahren. Auf diese Weise wird sichergestellt, dass die Apps oder nachgelagerten Dienste über genaue Informationen für ihre Entscheidungen verfügen, einschließlich der Entscheidungen bezüglich Zugriff und Autorisierung.
Dadurch wird bei den meisten Architekturen und Situationen die Möglichkeit verringert, dass ein gefälschtes X-Forwarded-For zum Erlangen eines unbefugten Zugriffs verwendet wird. Wie immer gilt: Je mehr Informationen Ihnen zur Verfügung stehen, um sich ein genaues Bild vom Kunden und seiner Legitimität zu machen, desto besser ist Ihre Sicherheit. Die Kombination der IP-Adresse (im X-Forwarded-For) mit dem Gerätetyp, Benutzeragenten und anderen Informationen, die automatisch in HTTP- und Netzwerkprotokollen übermittelt werden, bietet einen robusteren Kontext für die fundierte Entscheidungsfindung.
Bleib sicher!
Ressourcen zur Handhabung von X-Forwarded-For: