Чому ми не можемо використовувати IP-адресу замість файлів cookie для ідентифікації клієнта в сервлетах?


26

Я знаю, що у нас є деякі додаткові переваги у використанні файлів cookie над IP-адресою, але моє запитання: Чому контейнер не може просто запам'ятати IP-адресу клієнта, коли він ідентифікує клієнта, коли він знову відвідує його сайт? Чи можливо контейнер запам'ятати клієнта за допомогою IP-адреси?


47
IP-адреси не є унікальними. Що відбувається, коли за одним і тим же маршрутизатором стоять двоє людей?
Doval

7
Що відбувається, коли одна людина використовує Tor?

12
І IP-адреси людей можуть часто змінюватися (домашня широкосмугова мережа).
GrandmasterB

6
Проксі-сервери відображаються як 1 IP-адреса, незалежно від того, скільки людей стоїть за ними, наприклад, усі в компанії.
Jeff-Inventor ChromeOS,

4
@ Jeff-InventorChromeOS І навпаки, також: деякі Інтернет-провайдери мають кластери проксі-серверів, завдяки чому запити одного користувача можуть надходити з декількох IP-адрес. Востаннє я перевіряв, наприклад, AOL це робив.
Жуль

Відповіді:


84

Клієнт визначається файлом cookie, а також IP-адресою. Однак IP-адресу не можна використовувати виключно:

  • Що робити, якщо два клієнта розташовані за одним брандмауером або проксі-сервером? Вони будуть мати однакову зовнішню IP-адресу сервера.
  • Що робити, якщо користувач має два різні браузери, відкриті на одній машині, і хоче два окремих сеанси (можливо, для тестування?)
  • Користувач може мати динамічну IP-адресу, яка, можливо, може змінитися під час сеансу.
  • Зловмисник може мати можливість підробити IP-адресу та взяти на себе сеанс, якщо він покладається лише на IP-адресу.

Це означає, що IP-адреса не однозначно ідентифікує клієнта у всіх випадках.


19
Використання IP-адреси взагалі для ідентифікації клієнта - це величезна помилка. Моя IP-адреса, ймовірно, змінюється кілька разів на хвилину під час прогулянки по вулиці, що переходить на сайт із мого телефону.
Р ..

5
@R .. Вибачте, але це явно неправильно. Ваша радіоелемент не має нічого спільного з вашою IP-адресою, IP-рівень знаходиться над зв'язком стільникового (використовуючи фізичний рівень) в моделі OSI. Однак використання IP-адреси для ідентифікації клієнтів все ще помиляється, але не з цієї причини.
Відновіть Моніку - dirkk

11
@dirkk Якщо він перебуває на WiFi та підключається до різних, незалежних, мереж із їхніми IP-адресами, це, безумовно, може статися. Мобільна мережа може також вирішити надавати різні IP-адреси при зміні комірок. Якщо я підключаю (layer1) свій ноутбук до іншої мережі, це, безумовно, може змінити мій IP (layer3).
Боб

8
Я не знаю, як бездротові телекомунікації призначають IP-адреси, але я можу поговорити з wifi: якби я йшов по зайнятій вулиці і мав би свій бездротовий пристрій налаштований на підключення до будь-якої мережі Wifi, я можу сподіватися IP-адресу Wi-Fi часто змінювати.

7
@dirkk: Будь ласка, не звинувачуйте мене в тому, що я помиляюся в чомусь, про що ви не маєте поняття. Як і передбачалося Боб, я був говорити про Wi - Fi. У мене є доступ до 8+ кафе та інших ділових точок доступу, плюс (якісніші) міста, які надають точки доступу до Wi-Fi вздовж вулиці, і мій телефон регулярно стрибає між ними під час прогулянки.
Р ..

18

Іноді ви можете використовувати IP-адресу.

Якщо ви користуєтесь локальною мережею або іншим чином маєте справу виключно з користувачами, у яких статично розподілено IP-адресу для одиноких клієнтів, використання цієї адреси є ідеальною - іноді кращою та необхідною.

Але, як правило, не можна.

Якщо ви користуєтесь загальнодоступним сайтом, більшість IP-адрес, які потрапляють на ваш сервер, не є статичними або виділеними. Більшість із них представляють декілька клієнтів: ваш робочий стіл, ноутбук та мобільний телефон виходять через ту саму IP-адресу, коли ви перебуваєте в домашній мережі. І цей IP може змінитися - навіть на середині сесії.


2
Навіть на Лані не можна. Якщо я відкрию сайт у Firefox та Internet Explorer, я сподіваюся провести два різні сеанси.
Пітер Б

@PieterB Я не зрозумів вашу точку різного сеансу. Ви можете пояснити, будь ласка?
JAVA

1
@java, коли я заходжу на веб-сайт своїх банків за допомогою Firefox, я не сподіваюся ввійти з хромом. Обидва браузери працюють незалежно, проводячи власні сеанси.
Пітер Б

1
@PieterB Це все ще просто залежить від вимог. Якщо в вимогах зазначено, що кожен "сеанс" повинен охоплювати всіх веб-клієнтів на локальному пристрої, "IP-адреса, ймовірно, потрібна вам.
svidgen

10

Ще три причини додати:

  1. Існують багатокористувацькі робочі станції та термінальні сервери. Багато користувачів можуть запускати повністю незалежні процеси браузера в окремі сеанси.
  2. IP-адреси не зберігаються. Він може бути перепризначений, коли закінчується термін оренди DHCP.
  3. Додаток повинен підтримувати роумінг. Наприклад, користувач на телефоні може вийти з діапазону WiFi і передати його на 3G-з'єднання. IP-адреса змінилася б, але було б добре дозволити веб-додатку продовжувати працювати.

2

Використання IP-адреси як ідентифікатора, як правило, не рекомендується, оскільки це не те, для чого призначена IP-адреса - функціонально це звичайна адреса для маршрутизації від a до b, і вона нічого не говорить про те, що знаходиться перед a або після b.

Наприклад, одна і та сама IP-адреса може бути спільною для декількох вбудованих пристроїв, найбільш поширені випадки

а) постачальник динамічно призначає своїм клієнтам пул адрес, що є звичайним явищем, оскільки купуючи однакову кількість публічних адрес, ви можете обслуговувати більше клієнтів (вам потрібно лише достатньо адрес для одночасних користувачів, а не загальної кількості користувачів)

b) приватна мережа, що здійснює доступ до Інтернету з однієї адреси, внутрішньо перенаправляючи пакети на сотні чи тисячі, якщо машини


1

Крім того, що два комп'ютери можуть стояти за NAT і мати однакову IP-адресу, ваша концепція клієнта повинна бути правильною.

Клієнт дуже НЕ комп'ютер, з яким ви спілкуєтесь, а браузер, який працює на цьому комп’ютері.

Ваш браузер не надто дбає про те, яку ip-адресу має ваш комп’ютер, чи ваша операційна система. І тому ви не можете покластися на ip-адреси. Браузер дбає про файли cookie, і вони перебувають під контролем браузера. Ось чому ви використовуєте файли cookie для сеансів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.