Чи виходить вас з магазину зміна VPN-сервера?
Нова адреса виходу не очищає сховище cookie. Спершу вирішіть, що ви перевіряєте: мережевий маршрут, авторизовану сесію чи збережені дані сайту.
Змініть вихід VPN, поки магазин відкритий в іншій вкладці, і кошик зазвичай залишається на місці. Це не збій VPN; це браузер робить рівно те, що йому сказали. Cookie надсилає браузер, і новий мережевий маршрут не змінює те, що браузер зберігає. За фразою «сайт досі мене впізнає» ховаються три різні питання, і відповідь залежить від того, яке саме ви ставите.
Три питання, один симптом
Перше: чи впізнає сайт збережений cookie? Друге: чи впізнає він авторизований обліковий запис, який існує незалежно від будь-якого окремого cookie? Третє: чи впізнає він щось про браузер або пристрій, а не про збережений стан? Кожне має власний тест і власні ліки.
| What you changed | What it actually tests |
|---|---|
| VPN exit address | Whether the site treats a different network origin differently |
| Cookie jar for one site | Whether a stored identifier was doing the recognition |
| Browser profile or account | Whether identity, rather than storage, links the visits |
Більшість плутанини виникає, коли змінюють перше й чекають, що за ним піде друге. Мережева адреса й сховище браузера — дві окремі системи, які випадково використовує та сама сторінка.
Що насправді несе cookie
Керування станом HTTP, визначене в RFC 6265, навмисно просте: сервер задає ім'я та значення з областю дії, а браузер повертає їх для запитів, що відповідають цій області. Значенням може бути ідентифікатор сесії, налаштування або непрозорий токен, який сервер зіставляє із записом кошика. Ніде в механізмі не згадується адреса клієнта.
Саме цей дизайн пояснює, чому звичайні входи й кошики переживають зміну мережі, і він же пояснює, чому вони переживають її в трекерів. Той самий механізм служить обом цілям і не розрізняє їх. У протоколі немає поля для адреси клієнта, тому новому виходу нема чого анулювати. Сайту, який захотів би прив'язати cookie до мережевого походження, довелося б самому додати цю логіку.
Коли сайт повертає cookie, сервер шукає запис, на який указує це значення. Зміна маршруту, яким пройшов запит, не змінює цей пошук, і це все пояснення спостереження з кошиком покупок.
Вирішіть, що вимірює ваш тест
Перш ніж щось змінювати, запишіть початковий стан: який профіль браузера, який обліковий запис, які дані сайту, який мережевий маршрут. Потім змініть рівно одне з цього й спостерігайте. Тест, який одночасно змінює адресу виходу й профіль браузера, нічого не доводить ні про одне з них.
curl -sS -c /tmp/jar.txt -b /tmp/jar.txt -o /dev/null -w '%{http_code}\n' https://shop.example/cart
curl -sS -c /tmp/jar.txt -b /tmp/jar.txt -o /dev/null -w '%{http_code}\n' --interface 198.51.100.44 https://shop.example/cartОбидві команди повторно використовують той самий файл cookie, а друга примусово задає іншу локальну адресу джерела там, де це дозволяє хост. Відповідь кошика однакова в обох випадках, бо сервер так і не побачив іншої ідентичності клієнта, лише інший шлях. Це механізм в одній відтворюваній парі запитів.
Якщо мета — побачити, чи впізнає сайт вас без збереженого стану, очистьте дані цього сайту й повторіть. Якщо він усе ще впізнає вас, наступні підозрювані — авторизований обліковий запис, посилання, за яким ви перейшли, або характеристики браузера, а не cookie.
Очищайте потрібний стан, а не мережу
Видалення сховища одного сайту належить до власних засобів керування браузера й часто як побічний ефект завершує сеанс або скидає налаштування. Воно не видаляє обліковий запис чи записи, які сервіс уже зберігає; для них потрібен власний процес сервісу.
Обмеження між сайтами стосуються іншої частини проблеми. Браузери можуть блокувати або розділяти сховище, яке вбудовані сервіси інакше ділили б між сайтами, тоді як вхід від першої сторони продовжує працювати. Тому успішний вхід не є доказом того, що відстеження між сайтами працює.
Приватні вікна — ще один інструмент із вужчою областю, ніж очікують люди. Сайти все ще можуть встановлювати cookie під час сеансу, а вхід усе ще ідентифікує обліковий запис. Саме завершення приватного сеансу відкидає тимчасовий стан, а отже, треба закрити всі приватні вікна, а не одну вкладку.
Насамкінець ставтеся до зняття відбитків як до можливості, а не як до першого пояснення. Характеристики пристрою й браузера можуть пов'язувати відвідування без жодного збереженого cookie, і очищення сховища їх не зачепить. Спершу перевірте прості причини, потім розширюйте розслідування й записуйте, який стан ви змінили, щоб наступне порівняння було осмисленим.