Frage

In einer Login-Modul zu schreiben, mag ich IP-Adressen als zusätzliche Maßnahme zur Anmeldung für die Überprüfung, die auf der anderen Seite ist, ist immer noch die gleiche Person, die auf der anderen Seite.

Ich verwende $_SERVER['REMOTE_ADDR'] als eine (von vielen) Möglichkeiten der Remote-Computer die IP-Adresse zu erhalten. Abgesehen von einer IPv4 oder IPv6-Adresse, gibt es andere Werte i sollte dies erwarten zurückzukehren?

War es hilfreich?

Lösung

Es gibt wirklich keine zusätzliche Sicherheit, um die Überprüfung von IP-Adressen, da diese leicht gefälscht werden können, und jeder, der klug genug sind Transaktionen werden Abfangen POST wird dies wahrscheinlich sowieso tun.

Auch Sie können möglicherweise ärgerlich legitime Benutzer sein. Denken Sie an den Fall, in dem eine Person an einem Ort sein, wo es mehrere freie offene WLAN-Hotspots sind. Wenn sie Ihre Login-Seite zu bekommen, können sie zu einem Hotspot verbunden werden, sondern durch die Zeit, in sie unterschreiben, ihre Maschine entschieden haben, kann ein anderer Router eine bessere Option ist, und daher wird ihre IP ändern. Ob Sie es glauben oder nicht, kann dies einige abzuschrecken (wenn auch, sehr wenige) leicht frustriert Benutzer.

Ehrlich gesagt, ich würde einfach nicht stören. SSL verwenden, wenn Sie können, ist in der Regel der beste Weg zu vermeiden Sicherheitsprobleme wie das gehen Sie beschreiben. Viel Glück mit Ihrem Projekt.

Andere Tipps

Nach der PHP Online-Dokumentation nur eine IP-Adresse zurückgegeben werden sollte.

http://us.php.net/manual/en /reserved.variables.server.php

„ 'REMOTE_ADDR':

Die IP-Adresse, von der der Benutzer die aktuelle Seite betrachtet.“

Der Wert kann eine IPv4- oder IPv6-Adresse sein. Obwohl Sie wahrscheinlich nur werden kanonische Werte bewusst sein, bekommen, dass IP-Adressen können auf verschiedene Weise geschrieben werden. 192.0.2.1 ist die gleiche wie 192.000.002.001, 2001:db8::1 ist die gleiche wie 2001:0db0:0000:0000:0000:0000:0000:0001 usw. IPv4-Adressen auch in IPv6-Notation wie ::ffff:192.0.2.1 oder ::ffff:c000:0201 geschrieben werden können, wenn der Webserver IPv4 akzeptiert Verbindungen auf IPv6-Sockets. Ich sehe, dass auf Linux-Systeme viel.

Protokollierung von IP-Adressen sollten kein Problem sein, solange Sie genügend Platz zu reservieren. Tatsächlich wird mit IP-Adressen für die Zugangskontrolle immer mehr heikel in diesen Tagen. Da große Teile der Welt haben neue IPv4-Adressen ausgehen werden Sie sehen, dass ISPs NAT in großem Maßstab verwenden, müssen immer wieder neue Kunden an das IPv4-Internet zu verbinden. Dieser große Maßstab NATs wird einen Pool von öffentlichen IPv4-Adressen verwenden, um vielleicht Tausende von Kunden. Eine IP-Adresse kann von vielen Kunden verwendet werden, und ein Kunden möglicherweise unterschiedliche Adressen aus dem Pool am Ende mit.

In IPv6 die IP-Adresse Tracking hat andere Dinge zu berücksichtigen. Der ursprüngliche IPv6-Autokonfigurationsmechanismus basiert die MAC-Adresse als Teil der IPv6-Adresse zu verwenden. Aufgrund der Bedenken hinsichtlich der Privatsphäre die meisten Betriebssysteme nun eine (Art) verwenden zufällig generierte Interface Identifier (in der Regel die letzten 64 Bits der Adresse) für ausgehende Verbindungen, und können diese Bits / werden kann Zeit ändern. Einige Betriebssysteme (Mac OS X) halten auch Statistiken darüber, ob IPv4 oder IPv6 schneller ist, und ich habe Kunden gelegentlich hin und her wechseln zwischen IPv4 und IPv6 zu sehen.

Und dann können Sie Benutzer haben, dass roam von einer WLAN-Hotspot oder Büronetzwerk zu einem anderen, damit IP-Adressen wechseln.

Ich denke also, IP-Adressen anmelden könnte Sinn machen, auf das, was Sie mit den Daten tun wollen, aber sie als (Teil) eine Form der Zugriffskontrolle unter Verwendung von möglicherweise mehr Probleme verursachen, als es wert ist.

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