¿Por qué no podemos usar la dirección IP en lugar de cookies para identificar al cliente en servlets?

26

Sé que tenemos algunas ventajas adicionales al usar las cookies sobre la dirección IP, pero mi pregunta es ¿Por qué el contenedor no puede recordar la dirección IP del cliente al identificarlo cuando visita su sitio nuevamente? ¿Es posible que el contenedor recuerde al cliente con la ayuda de la dirección IP?

JAVA
fuente
47
Las direcciones IP no son únicas. ¿Qué sucede cuando dos personas están detrás del mismo enrutador?
Doval
77
¿Qué sucede cuando una persona está usando Tor?
12
Y las direcciones IP de las personas pueden cambiar con frecuencia (banda ancha doméstica).
GrandmasterB
66
Los proxies aparecen como 1 dirección IP, independientemente de cuántas personas estén detrás de ellos, por ejemplo, todos en una empresa.
Jeff-Inventor ChromeOS
44
@ Jeff-InventorChromeOS Y viceversa, también: algunos ISP tienen clústeres de servidores proxy de modo que las solicitudes de un solo usuario pueden parecer que provienen de múltiples direcciones IP. La última vez que revisé, AOL hizo esto, por ejemplo.
Jules

Respuestas:

84

Un cliente se identifica mediante una cookie, así como la dirección IP. Sin embargo, la dirección IP no se puede usar exclusivamente:

  • ¿Qué sucede si dos clientes se encuentran detrás del mismo firewall o proxy NAT? Tendrán la misma dirección IP externa al servidor.
  • ¿Qué sucede si un usuario tiene dos navegadores diferentes abiertos en la misma máquina y desea dos sesiones separadas (tal vez para realizar pruebas?)
  • Un usuario puede tener una dirección IP dinámica que posiblemente podría cambiar durante una sesión.
  • Un atacante puede falsificar una dirección IP y hacerse cargo de una sesión si se basa solo en la dirección IP.

Esto significa que una dirección IP no identifica de forma exclusiva a un cliente en todos los casos.


fuente
19
Usar una dirección IP para identificar a un cliente es un gran error. Mi dirección IP probablemente cambia varias veces por minuto mientras camino por la calle accediendo a un sitio desde mi teléfono.
R ..
55
@R .. Lo siento, pero esto es descaradamente incorrecto. Su radio celular no tiene nada que ver con su dirección IP, la capa IP está por encima de la comunicación celular (usando la capa física) en el modelo OSI. Aún así, usar la dirección IP para identificar clientes sigue siendo incorrecto, pero no por este motivo.
Restablecer Monica - dirkk
11
@dirkk Si tiene WiFi y se conecta a redes diferentes e independientes con sus IP públicas, eso ciertamente puede suceder. Una red móvil también podría decidir proporcionar diferentes direcciones IP cuando cambie las celdas. Si conecto (capa1) mi computadora portátil a una red diferente, eso ciertamente podría cambiar mi IP (capa3).
Bob
8
No soy un experto en cómo las empresas de telecomunicaciones inalámbricas asignan direcciones IP, pero puedo hablar con el wifi: si estuviera caminando por una calle concurrida y tuviera mi dispositivo inalámbrico configurado para conectarse a cualquier red wifi que pudiera, esperaría completamente Su dirección IP wifi para cambiar con frecuencia.
77
@dirkk: Por favor, no me acusen de estar equivocado acerca de algo sobre lo que no tienen idea. Como sospechaba Bob, estaba hablando de wifi. Tengo acceso a más de 8 cafés y otros puntos de acceso de negocios, además de puntos de acceso wifi proporcionados por la ciudad (de menor calidad) a lo largo de la calle, y mi teléfono salta regularmente entre ellos al caminar.
R ..
18

A veces se puede utilizar la dirección IP.

Si está en una LAN o está tratando exclusivamente con usuarios que tienen IP distribuidas estáticamente a clientes individuales, usar esa dirección está perfectamente bien, a veces es preferible y necesario.

Pero, por lo general, no puedes.

Si está ejecutando un sitio público, la mayoría de las direcciones IP que llegan a su servidor no son estáticas ni dedicadas. La mayoría de ellos representan múltiples clientes: su computadora de escritorio, computadora portátil y teléfono celular se apagan a través de la misma dirección IP cuando está en su red doméstica. Y esa IP puede cambiar, incluso a mitad de sesión.

svidgen
fuente
2
Incluso en un Lan no puedes. Si abro un sitio en Firefox e Internet Explorer, espero tener dos sesiones diferentes.
Pieter B
@PieterB No entendí tu punto de la sesión diferente. ¿Puedes explicarlo?
JAVA
1
@java cuando inicio sesión en el sitio web de mi banco con Firefox, no espero iniciar sesión con Chrome. Ambos navegadores trabajan independientemente con sus propias sesiones.
Pieter B
1
@PieterB Todavía depende de los requisitos. Si los requisitos establecen que cada "sesión" debe abarcar "todos los clientes web en un dispositivo local", la dirección IP es probablemente lo que desea.
svidgen
10

Tres razones más para agregar:

  1. Existen estaciones de trabajo multiusuario y servidores de terminal. Muchos usuarios podrían estar ejecutando procesos de navegador completamente independientes en sesiones separadas.
  2. Las direcciones IP no son persistentes. Podría reasignarse cuando caduque un arrendamiento de DHCP.
  3. La aplicación debe admitir roaming. Por ejemplo, un usuario en un teléfono puede abandonar el alcance de WiFi y pasar a una conexión 3G. La dirección IP cambiaría, pero sería bueno dejar que la aplicación web siga funcionando.
200_success
fuente
2

Por lo general, no se recomienda usar la dirección IP como identificador, ya que no es para lo que está destinada la dirección IP: funcionalmente es una dirección simple para el enrutamiento de a a b, y no dice nada antes o después de b.

Por ejemplo, la misma dirección IP puede ser compartida por varios dispositivos nativos, siendo los casos más comunes

a) un proveedor que asigna dinámicamente un grupo de direcciones a sus clientes, eso es bastante común, ya que al comprar la misma cantidad de direcciones públicas puede atender a más clientes (necesita las direcciones suficientes para usuarios simultáneos, no para usuarios totales)

b) una red privada que accede a la web desde una única dirección, redirigiendo internamente paquetes a cientos o miles de máquinas

Dados9
fuente
1

Además de que dos computadoras pueden estar detrás de un NAT y tener la misma dirección IP, su concepto de cliente debe ser correcto.

El cliente NO es la computadora con la que se está comunicando, sino el navegador que se ejecuta en esa computadora.

A su navegador no le importa mucho qué dirección IP tiene su computadora, a su sistema operativo sí. Y es por eso que no puede confiar en las direcciones IP. El navegador se preocupa por las cookies y están bajo el control de los navegadores. Es por eso que usa cookies para las sesiones.

Pieter B
fuente