2017-06-04 2 views
0

ist http_x_forwarded_for sicher?
In Anfragen, ist es in der Lage, die http_x_forwarded_for mit fake ip zu ändern?
Können Hacker das tun?Ist http_x_forwarded_for sicher für Prüfung IP

+0

[Wie wird HTTP_X_FORWARDED_FOR richtig verwendet?] (Https://stackoverflow.com/q/11452938/608639), [Was ist der Unterschied zwischen HTTP_CLIENT_IP und HTTP_X_FORWARDED_FOR?] (Https://stackoverflow.com/q/7445592/608639), usw. – jww

+0

Mögliches Duplikat von [PHP am genauesten/sichersten Weg, echte Benutzer-IP-Adresse in 2017 zu erhalten] (https://stackoverflow.com/questions/44085102/php-most-accurate-safe-way-to -get-real-user-ip-adresse-in-2017) – Narf

Antwort

0

Aufgrund der Art und Weise, wie IP-Netzwerke funktionieren, gibt es keine Möglichkeit, die tatsächliche IP-Adresse eines Clients zu Ihrem Server zu verbinden. Die Frage macht sogar keinen Sinn. Wenn NAT im Netzwerk verwendet wird, welche IP möchten Sie als Client-IP sehen, die interne (lokale) im NAT-Netzwerk oder die erste öffentliche IP? Was würden Sie von letzterem profitieren, wenn ganze Internetanbieter mit Kundennetzwerken hinter einem nat arbeiten (obwohl dies immer seltener wird)?

Sie müssen bestätigen, dass der Verkehr in einem IP-Netzwerk viele Knoten passiert, von denen einige die scheinbare IP-Adresse einer Anfrage ändern können. Dazu gehören NAT-Server und Proxies unterschiedlicher Art, und Sie können nicht feststellen, was mit einem Paket passiert ist, bevor Sie Ihren Server erreichen.

Auch in HTTP, kann jeder Anfrage Header gefälscht werden. Dies umfasst alle Variablen, die mit SERVER_ in Ihrer bevorzugten Sprache beginnen. Diese können nicht vertrauenswürdig sein, ein Benutzer kann senden, was er will.

Die einzige Ausnahme ist die tatsächliche scheinbare Client-IP, die viel schwieriger zu fälschen ist, aber nur den letzten Hop (den letzten Proxy oder den letzten nat-Server) gibt.

Auch die meisten Zeiten, wenn Sie die Client-IP genau wissen müssen, ist etwas Elae auf der Logik falsch. Sie müssen zum Beispiel akzeptieren, dass eine Client-IP in keiner Weise eine Kennung eines Benutzers (einer Person) ist.

0
is http_x_forwarded_for safe? 

Es hängt von dem Proxy-Server ab, auf den Sie sich verlassen. Der Proxy-Server hat eine vollständige Kontrolle über diesen Header und kann einen beliebigen Wert in der Kopfzeile festlegen. Wenn Sie also die Kontrolle über den Proxy haben, können Sie dem Attribut vertrauen und es kann die korrekte Information bestätigen. Ich habe dies erfolgreich in der Vergangenheit verwendet, um die Client-IP-Adresse mit dem Trusted Proxy Server Setup zu lesen.

is it able to modify the http_x_forwarded_for with fake ip? 
Can hackers do that? 

Wenn Sie sprechen über die Anfrage zu einem bestimmten Hop in einem Netzwerk zu modifizieren mehrere Proxy-Server enthält, bevor sie den Server erreicht, dann ja das ist möglich. Es hängt also davon ab, wie Sie das Proxy-Setup steuern. Wenn es darum geht, den Header über den Netzwerk-Tunnel durch Abfangen der weitergeleiteten Proxy-Anfrage zu ändern, ist dies möglicherweise möglich, kann aber unter Verwendung eines geeigneten Handshake-Protokolls vermieden werden.

Verwandte Themen