Spoofing der Variable $_SERVER['REMOTE_ADDR']
Frage:
Ist es das? Es ist möglich, den Inhalt der Variablen $_SERVER['REMOTE_ADDR'] zu ändern oder zu manipulieren, was normalerweise der Fall ist stellt die IP-Adresse des Clients dar, der die Anfrage stellt?
Antwort:
Das Fälschen der Variablen $_SERVER['REMOTE_ADDR'] aus der Ferne ist je nach Umfang tatsächlich möglich der gewünschten Manipulation. Schauen wir uns die Optionen genauer an:
Fälschung auf Socket-Ebene:
Wenn der Empfang einer Antwort nicht entscheidend ist, ist es möglich, eine Raw-Socket-Verbindung zum Zielserver herzustellen und die Quell-IP-Adresse verfälschen. Dies liegt daran, dass PHP keinen direkten Zugriff auf Socket-Implementierungen unterhalb der TCP-Ebene hat.
Gateway-Kompromittierung:
Durch die Kompromittierung des mit der Ziel-IP-Adresse verknüpften Gateways ist dies möglich sich als der entsprechende Computer ausgeben. Da der Server nicht zwischen einem echten und einem gefälschten Client unterscheiden kann, bietet die Gateway-Kompromittierung vollständige Kontrolle.
Wichtige Überlegungen:
Bei Verwendung eines Frameworks für den Zugriff auf $ Wenn Sie die Variable _SERVER['REMOTE_ADDR'] verwenden, müssen Sie unbedingt überprüfen, ob der Header X-HTTP-FORWARDED-FOR untersucht wird. Wenn nicht, wird es für einen Angreifer trivial, seine IP-Adresse zu fälschen, indem er einfach den Header mit einem bestimmten Wert sendet.
Bearbeiten: Ein relevantes Beispiel
In einem aktuellen In diesem Blogbeitrag wies der Autor auf eine Schwachstelle in der Anwendung von StackOverflow hin, die einen Mechanismus ausnutzte, der dem Spoofing von IP-Adressen ähnelt. Dies dient als praktischer Beweis für die Relevanz und mögliche Auswirkung einer solchen Manipulation.
Das obige ist der detaillierte Inhalt vonKann $_SERVER['REMOTE_ADDR'] gefälscht werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!