Вы выходите из магазина при смене 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, и очистка хранилища их не затронет. Сначала проверьте простые причины, затем расширяйте расследование и записывайте, какое состояние вы изменили, чтобы следующее сравнение было осмысленным.