Pull to refresh

Cookie без куков

Reading time1 min
Views55K
Original author: lucb1e

Отслеживание



Как мы обычно отслеживаем посетителей сайта? Одним из следующих методов:

  • cookies
  • javascript
  • local storage
  • flash, java, иные плагины
  • ip-адрес и UserAgent


Допустим, пользователь отключил всё это (и ходит через прокси или даже vpn). Есть ли способ всё-таки его отследить?
Оказывается — да. Это кэш браузера.

Демонстрация технологии находится на странице оригинальной статьи.

Объяснение работы



image

Для того, чтобы определить, надо ли загружать статичный контент, в общении браузера с http-сервером используется ETag. Это контрольная сумма, которая должна меняться вместе с изменением файла.

При первой загрузке файла (например, изображения) браузер получает ETag. Потом он передаёт этот etag серверу, и тот проверяет, не поменялась ли контрольная сумма, и следовательно — файл.

Становится понятно, что вместо использования по назначению, веб-сервер может использовать этот etag как идентификатор пользователя.
Если etag нет, отдаём новый. Если прислали etag, ищем его в базе пользователей, и отдаём его же.

У технологии есть недостатки — картинка грузится после того, как загрузится страница, поэтому пользователь увидит информацию от своего предыдущего посещения. Однако, если эта технология используется для скрытого слежения, то это никому не мешает.

Вывод: если вы хотите на 100% защититься от отслеживания, вам придётся отключить все плагины, яваскрипт, куки и кэширование страниц. Хотя, полагаю что мега-параноики и так всё это отключили.

На гитхабе доступны исходники работающего прототипа программы отслеживания от автора статьи.
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
Total votes 132: ↑110 and ↓22+88
Comments27

Articles