Отслеживание
Как мы обычно отслеживаем посетителей сайта? Одним из следующих методов:
- cookies
- javascript
- local storage
- flash, java, иные плагины
- ip-адрес и UserAgent
Допустим, пользователь отключил всё это (и ходит через прокси или даже vpn). Есть ли способ всё-таки его отследить?
Оказывается — да. Это кэш браузера.
Демонстрация технологии находится на странице оригинальной статьи.
Объяснение работы
Для того, чтобы определить, надо ли загружать статичный контент, в общении браузера с http-сервером используется ETag. Это контрольная сумма, которая должна меняться вместе с изменением файла.
При первой загрузке файла (например, изображения) браузер получает ETag. Потом он передаёт этот etag серверу, и тот проверяет, не поменялась ли контрольная сумма, и следовательно — файл.
Становится понятно, что вместо использования по назначению, веб-сервер может использовать этот etag как идентификатор пользователя.
Если etag нет, отдаём новый. Если прислали etag, ищем его в базе пользователей, и отдаём его же.
У технологии есть недостатки — картинка грузится после того, как загрузится страница, поэтому пользователь увидит информацию от своего предыдущего посещения. Однако, если эта технология используется для скрытого слежения, то это никому не мешает.
Вывод: если вы хотите на 100% защититься от отслеживания, вам придётся отключить все плагины, яваскрипт, куки и кэширование страниц. Хотя, полагаю что мега-параноики и так всё это отключили.
На гитхабе доступны исходники работающего прототипа программы отслеживания от автора статьи.