Frage

Benutzt $_SERVER['REMOTE_ADDR'] für eine ordnungsgemäße automatische Fehlerbehandlung zuverlässig?

Ich denke darüber nach, es zu verwenden, um die Anzeige von PHP -Fehlern automatisch zu deaktivieren und einen allgemeinen "oops, es ist nichts falsch". Fehler beim Benutzer und stattdessen intern protokollieren, Wenn Die IP-Adresse des Benutzers lautet nicht in der Whitelist gefunden.

Die Whitelist würde die Localhost-IP und alle anderen IP-Adressen wie die meines Heim-PCs enthalten.

Aber wenn die Leute fälschen können $_SERVER['REMOTE_ADDR'] indem man es auf den gewünschten Wert setzt, dann halte ich das nicht für eine gute Idee.

War es hilfreich?

Lösung

$_SERVER['REMOTE_ADDR'] ist die Adresse, die dem dreifach bestätigten TCP-Handshake entnommen wurde.Es ist verdammt robust.Um es zu fälschen, müssen Sie die tatsächlich zugrunde liegende TCP/IP-Verbindung fälschen, was normalerweise eine große Herausforderung ist.

Was mir stattdessen Sorgen bereiten würde, wäre die Änderung der IPs. 127.0.0.1 ist wahrscheinlich ziemlich sicher, aber Ihre Heim-IP Mai Irgendwann ändert sich etwas, und vielleicht bekommt es jemand anderes zugewiesen.Das ist vielleicht kein großes Problem, oder doch.Oder es scheint, als hätten Sie dieselbe IP-Adresse wie eine große Anzahl anderer Benutzer, und die ISPs wechseln im Laufe der Zeit zu NAT der Carrier-Klasse.

Alles in allem ist die Verwendung von IPs als Identifikationssystem unsicher.IPs sind ein Implementierungsdetail eines Datentransportmechanismus, niemand hat jemals etwas darüber gesagt, dass IPs für die internetweite Identifizierung von Benutzern geeignet sind.Ich würde es zumindest mit einem geheimen Cookie koppeln, das gesetzt werden muss, oder mit einer regulären Authentifizierung, die eingerichtet werden muss.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top