Perché non possiamo usare l'indirizzo IP anziché i cookie per identificare il client nei servlet?


26

So che abbiamo alcuni vantaggi in più nell'uso dei cookie su indirizzo IP, ma la mia domanda è: perché il contenitore non riesce a ricordare l'indirizzo IP del client nell'identificare il client quando visita di nuovo il suo sito? È possibile che il contenitore ricordi il client con l'aiuto dell'indirizzo IP?


47
Gli indirizzi IP non sono univoci. Cosa succede quando due persone sono dietro lo stesso router?
Doval,

7
Cosa succede quando una persona sta usando Tor?

12
E gli indirizzi IP delle persone potrebbero cambiare frequentemente (banda larga domestica).
GrandmasterB

6
I proxy vengono visualizzati come 1 indirizzo IP, indipendentemente da quante persone ci sono dietro, ad esempio tutti in un'azienda.
Jeff-Inventor ChromeOS

4
@ Jeff-InventorChromeOS E anche viceversa: alcuni ISP hanno cluster di server proxy in modo tale che le richieste di un singolo utente possano sembrare provenire da più indirizzi IP. L'ultima volta che ho controllato, AOL ha fatto questo, per esempio.
Jules,

Risposte:


84

Un client è identificato da un cookie e dall'indirizzo IP. Tuttavia, l'indirizzo IP non può essere utilizzato esclusivamente:

  • Cosa succede se due client si trovano dietro lo stesso firewall o proxy NAT? Avranno lo stesso indirizzo IP esterno sul server.
  • Cosa succede se un utente ha due browser diversi aperti sullo stesso computer e desidera due sessioni separate (forse per i test?)
  • Un utente può avere un indirizzo IP dinamico che potrebbe cambiare durante una sessione.
  • Un utente malintenzionato potrebbe essere in grado di falsificare un indirizzo IP e assumere una sessione se si basava solo sull'indirizzo IP.

Ciò significa che un indirizzo IP non identifica in modo univoco un client in tutti i casi.


19
L'uso di un indirizzo IP per identificare un client è un enorme bug. Il mio indirizzo IP probabilmente cambia più volte al minuto mentre cammino per strada accedendo a un sito dal mio telefono.
R ..

5
@R .. Mi dispiace, ma questo è palesemente sbagliato. La tua cella radio non ha nulla a che fare con il tuo indirizzo IP, il livello IP è sopra la comunicazione cellulare (usando il livello fisico) nel modello OSI. Tuttavia, l'utilizzo dell'indirizzo IP per identificare i client è ancora errato, ma non per questo motivo.
Ripristina Monica - Dirkk,

11
@dirkk Se è su WiFi e si connette a reti diverse, indipendenti, con i loro IP pubblici, ciò può certamente accadere. Una rete mobile potrebbe anche decidere di fornire indirizzi IP diversi quando si cambia cella. Se collego (layer1) il mio laptop a una rete diversa, questo potrebbe sicuramente cambiare il mio IP (layer3).
Bob,

8
Non sono un esperto del modo in cui i telcos wireless assegnano gli indirizzi IP, ma posso parlare al wifi: se stavo camminando lungo una strada trafficata e avessi il mio dispositivo wireless configurato per connettersi a qualsiasi rete wifi potesse, mi sarei completamente aspettato il suo indirizzo IP wifi per cambiare frequentemente.

7
@dirkk: Per favore, non accusarmi di sbagliarmi su qualcosa di cui non hai idea. Come Bob sospettato, io stavo parlando di wifi. Ho accesso a più di 8 caffè e altri punti di accesso alle imprese, oltre a punti di accesso wifi forniti dalla città (di qualità inferiore) lungo la strada e il mio telefono salta regolarmente tra loro mentre cammina.
R ..

18

A volte puoi usare l'indirizzo IP.

Se sei su una LAN o hai a che fare esclusivamente con utenti che hanno IP distribuito staticamente su singoli client, usare quell'indirizzo è perfettamente corretto - a volte preferibile e necessario.

Ma di solito non puoi.

Se stai gestendo un sito pubblico, la maggior parte degli indirizzi IP che colpiscono il tuo server non sono statici o dedicati. La maggior parte di essi rappresenta più client: desktop, laptop e cellulare escono tutti sullo stesso indirizzo IP quando ci si trova sulla rete domestica. E quell'IP può cambiare, anche a metà sessione.


2
Anche su una Lan non puoi. Se apro un sito in Firefox e Internet Explorer, mi aspetto di avere due sessioni diverse.
Pieter B,

@PieterB Non ho capito il punto della diversa sessione. Puoi spiegarlo, per favore?
JAVA,

1
@java quando accedo al sito web delle mie banche con Firefox, non mi aspetto di aver effettuato l'accesso con Chrome. Entrambi i browser funzionano in modo indipendente con le proprie sessioni.
Pieter B,

1
@PieterB Dipende ancora solo dai requisiti. Se i requisiti stabiliscono che ogni "sessione" dovrebbe estendersi a "tutti i client Web su un dispositivo locale", probabilmente l'indirizzo IP è quello che desideri.
svidgen,

10

Altre tre ragioni per aggiungere:

  1. Esistono workstation multiutente e terminal server. Molti utenti potrebbero eseguire processi del browser completamente indipendenti in sessioni separate.
  2. Gli indirizzi IP non sono persistenti. Potrebbe essere riassegnato alla scadenza di un contratto di locazione DHCP.
  3. L'applicazione dovrebbe supportare il roaming. Ad esempio, un utente di un telefono potrebbe abbandonare la portata del WiFi e essere trasferito a una connessione 3G. L'indirizzo IP cambierebbe, ma sarebbe bello lasciare che l'applicazione web continuasse a funzionare.

2

L'uso dell'indirizzo IP come identificatore non è generalmente raccomandato, poiché non è quello a cui è destinato l'indirizzo IP - funzionalmente è un indirizzo semplice per l'instradamento da a a b e non dice nulla di ciò che è prima di a o dopo b.

Ad esempio, lo stesso indirizzo IP può essere condiviso da un numero di dispositivi natted, essendo i casi più comuni

a) un fornitore che assegna dinamicamente un pool di indirizzi ai propri clienti, il che è abbastanza comune come acquistare la stessa quantità di indirizzi pubblici che puoi servire a più clienti (hai bisogno di indirizzi sufficienti per utenti simultanei, non per utenti totali)

b) una rete privata che accede al Web da un unico indirizzo, reindirizzando internamente i pacchetti a centinaia o migliaia di macchine


1

A parte il fatto che due computer possono essere dietro un NAT e avere lo stesso indirizzo IP, il tuo concetto di client deve essere giusto.

Il client NON è il computer con cui stai comunicando, ma il browser in esecuzione su quel computer.

Al tuo browser non importa molto dell'indirizzo IP del tuo computer, come fa il tuo sistema operativo. Ed è per questo che non puoi fare affidamento su indirizzi IP. Il browser si preoccupa dei cookie e sono sotto il controllo del browser. Ecco perché usi i cookie per le sessioni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.