Содержание
Сегодня существует много способов идентифицировать и устроить слежку за пользователем в сети. Изначально слежка за пользователем была придумана с целью отличить реального пользователя от бота. Затем этим способом воспользовались рекламные компании. Рассмотрим наиболее распространенные способы.
Cookie, куки
Куки — это самый старый и популярный метод идентификации пользователя. Хранит короткие отрезки текстовых данных. На стороне пользователя устанавливается идентификатор (cookie), который запрашивается при последующих обращениях к сайту. Для блокировки куки можно установить соответствующие плагины в браузер, либо использовать его в режиме «инкогнито».
Многие не чистят куки или боятся их удалять (некоторые используются для авторизации на сайте).
Этот механизм используется для хранения информации на стороне пользователя в adobe flash. В отличие от cookie может хранить большие объемы информации.
При настройке браузер ищите, как отключить именно флэш-куки.
Хотите анонимности в сети — не устанавливайте Adobe flash плеер.
Хранилище Silverlight

Платформа Silverlight похожа на Adobe flash. Здесь используется Isolated Storage для хранения всей информации о пользователе.
Минус: через настройки браузера невозможно удалить уникальные идентификаторы. Даже если вы используете режим «Инкогнито», почистите историю и удалите все куки, информация о вас все равно останется в хранилище Silverlight.
HTML5 и хранение данных
Для хранения данных HTML5 использует:
- localStorage.
- File Api.
- Indexed DB.
Объем хранилища может быть огромным.
Однако вручную удалить все данные пользователя из этих хранилищ не совсем понятно как.
Кешированные объекты
Для быстрой загрузки страниц повсеместно используется кеширование. В локальный кеш записываются все объекты с посещаемого сайта. Здесь же прописывается время жизни кеша (заголовок Expires). При повторном обращении к сайту загружается локальная копия.
С другой стороны, отключение кеширования может замедлить загрузку страниц сайта и выполнение JavaScript.
ETag и Last-Modified
Для правильной работы с закешированным содержимым страниц сервер должен информировать браузер, что документ обновился. Для этой цели используют ETag и Last-Modified.
ETag
Сначала с кешированной страницей сервер передает version tag. В будущем будет проверяться эта версия на правильность. Если версия тега совпадает с загружаемой страницей — грузится локальная копия, если версия изменилась — грузится новая страница с сервера.
Чем-то это напоминает работу куки, когда сервер сохраняет произвольное значение на стороне клиента, чтобы потом его снова считать.
Last-Modified
Last-Modified сообщает дату последнего изменения документа.
Чтобы избавиться от ETag и Last-Modified, нужно чистить кеш. Чистка куки и истории не поможет.
HTML5 AppCache
Application Cache позволяет сохранять какую-то часть сайта, чтобы она была доступна оффлайн.
Чтобы удалить данные из этого хранилища на одних браузерах нужно удалить весь кеш, на других — очистить куки и историю.
SDCH-словари
Такие словари используют сжатые данные посещенных страниц. Большинство сайтов сегодня работают на CMS, у них несколько повторяющихся блоков для всех страниц (футер, сайдбар, шапка). Чтобы каждый раз не запрашивать эти одинаковые блоки, сервер подготавливает для клиента SDCH-словарь (сжатый архив). Далее при последующих обращениях к страницам сайта сервер ссылается на данные из этого словаря.
Такие словари можно использовать и для хранения уникальных идентификаторов пользователя.
«Отпечатки» браузера
Никаких уникальных идентификаторов на стороне клиента не устанавливается. Сервер берет набор данных из среды браузера и объединяет их:
- User-Agent — версия браузера, операционная система, установленные расширения.
- Время на компьютере клиента.
- Информация об установленном железе на компьютере. Это можно узнать через бенчмарки и тесты, реализованные на javaScript.
- Разрешение монитора, размер окна браузера.
- Установленные шрифты в системе + установленное ПО на компьютере (некоторые программы корректируют отображение веб-страниц, поэтому можно легко их определить).
«Сетевые» отпечатки
Идентифицировать пользователя можно и по структуре локальной сети, настройкам сетевых протоколов. Сюда включены: ip-адрес, MAC-адрес, номера портов для исходящих и входящих TCP/IP-соединений, локальный IP (если пользователь скрыт за прокси).
Поведенческий анализ и привычки
По поведению легко можно идентифицировать почти любого пользователя. Сюда входят: история просмотров, движения мышкой, частота нажатий кнопок, настройки браузера.