Warum können wir bei der Identifizierung des Clients in Servlets keine IP-Adresse anstelle von Cookies verwenden?

26

Ich weiß, dass die Verwendung von Cookies einige zusätzliche Vorteile gegenüber der IP-Adresse hat, aber meine Frage ist, warum der Container die IP-Adresse des Kunden bei der Identifizierung des Kunden, wenn er seine Website erneut besucht, nicht einfach speichert. Kann sich der Container mithilfe der IP-Adresse an den Client erinnern?

JAVA
quelle
47
IP-Adressen sind nicht eindeutig. Was passiert, wenn sich zwei Personen hinter demselben Router befinden?
Doval
7
Was passiert, wenn eine Person Tor benutzt?
12
Die IP-Adressen von Personen können sich häufig ändern (Heim-Breitband).
GroßmeisterB
6
Proxies werden als 1 IP-Adresse angezeigt, unabhängig davon, wie viele Personen sich dahinter befinden, zum Beispiel alle in einem Unternehmen.
Jeff-Inventor ChromeOS
4
@ Jeff-InventorChromeOS Und auch umgekehrt: Einige ISPs verfügen über Cluster von Proxy-Servern, sodass die Anforderungen eines einzelnen Benutzers scheinbar von mehreren IP-Adressen stammen. Als ich das letzte Mal nachgesehen habe, hat AOL das zum Beispiel getan.
Jules

Antworten:

84

Ein Client wird durch ein Cookie sowie die IP-Adresse identifiziert. Die IP-Adresse kann jedoch nicht ausschließlich verwendet werden:

  • Was ist, wenn sich zwei Clients hinter derselben NAT-Firewall oder demselben Proxy befinden? Sie haben dieselbe externe IP-Adresse für den Server.
  • Was ist, wenn ein Benutzer zwei verschiedene Browser auf demselben Computer geöffnet hat und zwei separate Sitzungen (möglicherweise zum Testen) möchte?
  • Ein Benutzer kann eine dynamische IP-Adresse haben, die sich möglicherweise während einer Sitzung ändern könnte.
  • Ein Angreifer kann möglicherweise eine IP-Adresse fälschen und eine Sitzung übernehmen, wenn er sich nur auf die IP-Adresse stützt.

Dies bedeutet, dass eine IP-Adresse einen Client nicht in allen Fällen eindeutig identifiziert .


quelle
19
Das Verwenden einer IP-Adresse, um einen Client zu identifizieren, ist ein großer Fehler. Wahrscheinlich ändert sich meine IP-Adresse mehrmals pro Minute, während ich die Straße entlang gehe und von meinem Telefon aus auf eine Site zugreife.
R ..
5
@R .. Es tut mir leid, aber das ist offensichtlich falsch. Ihre Funkzelle hat nichts mit Ihrer IP-Adresse zu tun, die IP-Schicht befindet sich im OSI-Modell über der Zellkommunikation (unter Verwendung der physischen Schicht). Die Verwendung der IP-Adresse zur Identifizierung von Clients ist immer noch falsch, aber nicht aus diesem Grund.
Wiedereinsetzung von Monica - Dirkk
11
@dirkk Wenn er im WLAN ist und eine Verbindung zu verschiedenen unabhängigen Netzwerken mit öffentlichen IP-Adressen herstellt, kann dies durchaus passieren. Ein mobiles Netzwerk kann auch entscheiden, unterschiedliche IP-Adressen bereitzustellen, wenn Sie die Zellen wechseln. Wenn ich meinen Laptop an ein anderes Netzwerk anschließe (Layer 1), kann dies meine IP-Adresse (Layer 3) ändern.
Bob
8
Ich bin kein Experte dafür, wie drahtlose Telekommunikationsunternehmen IP-Adressen zuweisen, aber ich kann mit dem WLAN sprechen: Wenn ich eine viel befahrene Straße entlang gehe und mein drahtloses Gerät so konfiguriert habe, dass es eine Verbindung zu einem beliebigen WLAN-Netzwerk herstellen kann, würde ich voll und ganz damit rechnen Die WLAN-IP-Adresse wird häufig geändert.
7
@dirkk: Bitte beschuldigen Sie mich nicht, dass ich mich in etwas geirrt habe, von dem Sie keine Ahnung haben. Als Bob vermutet, ich war im Gespräch über WiFi. Ich habe Zugang zu mehr als 8 Cafés und anderen geschäftlichen Zugangspunkten sowie (minderwertigen) WLAN-Zugangspunkten entlang der Straße, zwischen denen mein Telefon während des Gehens regelmäßig hin und her springt.
R ..
18

Manchmal Sie können IP - Adresse verwenden.

Wenn Sie sich in einem LAN befinden oder sich auf andere Weise ausschließlich mit Benutzern befassen, deren IP-Adresse statisch an einzelne Clients verteilt wurde, ist die Verwendung dieser Adresse in Ordnung - manchmal vorzuziehen und erforderlich.

Aber normalerweise kannst du nicht.

Wenn Sie eine öffentliche Site betreiben, sind die meisten IP-Adressen, die Ihren Server betreffen, nicht statisch oder dediziert. Die meisten von ihnen stehen für mehrere Clients: Ihr Desktop, Ihr Laptop und Ihr Mobiltelefon haben alle dieselbe IP-Adresse, wenn Sie sich in Ihrem Heimnetzwerk befinden. Und diese IP kann sich ändern - sogar während der Sitzung.

Svidgen
quelle
2
Sogar auf einem Lan kann man nicht. Wenn ich eine Site in Firefox und Internet Explorer öffne, erwarte ich zwei verschiedene Sitzungen.
Pieter B
@PieterB Ich habe Ihren Punkt der unterschiedlichen Sitzung nicht verstanden. Können Sie es bitte erklären?
JAVA
1
@java Wenn ich mich mit Firefox auf meiner Bank-Website anmelde, erwarte ich nicht, mit Chrome angemeldet zu sein. Beide Browser arbeiten unabhängig voneinander mit ihren eigenen Sitzungen.
Pieter B
1
@PieterB Es kommt nur noch auf die Anforderungen an. Wenn in den Anforderungen angegeben ist, dass jede "Sitzung" alle Web-Clients auf einem lokalen Gerät umfassen soll, ist die IP-Adresse wahrscheinlich die von Ihnen gewünschte.
Svidgen
10

Drei weitere Gründe, um hinzuzufügen:

  1. Es gibt Mehrbenutzerarbeitsplätze und Terminalserver. Viele Benutzer können völlig unabhängige Browserprozesse in separaten Sitzungen ausführen.
  2. IP-Adressen sind nicht persistent. Es könnte neu zugewiesen werden, wenn eine DHCP-Lease abläuft.
  3. Die Anwendung sollte Roaming unterstützen. Beispielsweise kann ein Benutzer an einem Telefon die WLAN-Reichweite verlassen und an eine 3G-Verbindung weitergeleitet werden. Die IP-Adresse würde sich ändern, aber es wäre schön, die Webanwendung weiterarbeiten zu lassen.
200_erfolg
quelle
2

Die Verwendung der IP-Adresse als Bezeichner wird im Allgemeinen nicht empfohlen, da dies nicht der Zweck der IP-Adresse ist. Funktionell handelt es sich um eine einfache Adresse für die Weiterleitung von a nach b, die nichts darüber aussagt, was vor a oder nach b steht.

Beispielsweise kann dieselbe IP-Adresse von einer Anzahl von nattierten Geräten gemeinsam genutzt werden, wobei die meisten Fälle auftreten

a) Ein Anbieter weist seinen Kunden dynamisch einen Adresspool zu. Dies ist häufig der Fall, wenn Sie die gleiche Anzahl von öffentlichen Adressen kaufen, die Sie für mehr Kunden verwenden können (Sie benötigen gerade genug Adressen für gleichzeitige Benutzer, nicht für die Gesamtzahl der Benutzer).

b) ein privates Netzwerk, das von einer einzigen Adresse aus auf das Internet zugreift und intern Pakete an Hunderte oder Tausende von Computern umleitet

Würfel9
quelle
1

Abgesehen davon, dass sich zwei Computer hinter einem NAT befinden können und die gleiche IP-Adresse haben, muss Ihr Client-Konzept stimmen.

Der Client ist NICHT der Computer, mit dem Sie kommunizieren, sondern der Browser, der auf diesem Computer ausgeführt wird.

Ihrem Browser ist es egal, welche IP-Adresse Ihr Computer hat, Ihr Betriebssystem auch. Aus diesem Grund können Sie sich nicht auf IP-Adressen verlassen. Der Browser kümmert sich um Cookies und sie stehen unter der Kontrolle des Browsers. Aus diesem Grund verwenden Sie Cookies für Sitzungen.

Pieter B
quelle