Обычная логика такая: не хочу, чтобы меня узнавали — открываю приватное окно, и всё, я новый посетитель. Логика была верной примерно до середины десятых годов.
Сейчас узнавание держится не на cookie, а на наборе свойств самого браузера. Их не надо никуда сохранять — они просто есть, и по их сочетанию посетитель определяется с высокой надёжностью. Очистка хранилища на это не влияет никак: удалять там нечего.
Что именно считывается
Начну с простого. Вот два десятка строк, которые собирают базовые параметры:
const d = { ua: navigator.userAgent, lang: navigator.language, platform: navigator.platform, cores: navigator.hardwareConcurrency, mem: navigator.deviceMemory, screen: [screen.width, screen.height, screen.colorDepth].join('x'), tz: Intl.DateTimeFormat().resolvedOptions().timeZone, tzoff: new Date().getTimezoneOffset(), };
Запускаю это в браузере на своей машине:
{"ua":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, l...", "lang":"ru-RU","platform":"Linux x86_64","cores":4,"mem":16, "screen":"1536x960x24","tz":"Europe/Moscow","tzoff":240}
Ни одно из этих значений само по себе не уникально: четырёхъядерных машин миллионы. Работает сочетание. Число ядер отсекает часть посетителей, разрешение экрана — ещё часть, часовой пояс — ещё, язык — ещё. Пересечение нескольких таких множеств оказывается на удивление маленьким.
Дальше начинается интересное
Перечисленное выше — только вершина. Настоящую точность дают вещи, которые вообще не выглядят как идентификатор.
Отрисовка на canvas. Странице предлагается нарисовать невидимую картинку с текстом и забрать её пиксели. Результат зависит от видеокарты, драйвера, версии системы, набора шрифтов, настроек сглаживания. Картинка задана одна и та же, а пиксели на разных машинах получаются разные.
const c = document.createElement('canvas'); const x = c.getContext('2d'); x.textBaseline = 'top'; x.font = '16px Arial'; x.fillStyle = '#f60'; x.fillRect(0, 0, 120, 30); x.fillStyle = '#069'; x.fillText('Проверка отпечатка 123', 4, 20); const hash = fnv1a(c.toDataURL()); // короткая свёртка от картинки
Ключевое свойство — стабильность. Запускаю дважды подряд:
"canvas":"e0a1ec2d" "canvas":"e0a1ec2d"
Один и тот же результат. Между приватным окном и обычным результат тоже совпадает: рисует одно и то же железо теми же шрифтами. Cookie здесь ни при чём, стирать нечего.
Набор шрифтов. Проверяется без всяких разрешений: браузеру подсовывают текст в конкретном шрифте и смотрят ширину получившейся строки. Если шрифта нет, ширина совпадёт с запасным вариантом, если есть — отличается.
"fonts":["Arial","Times New Roman","DejaVu Sans"]
Набор шрифтов рассказывает о системе и об установленных программах: офисный пакет, инструменты разработки, графические редакторы приносят свои шрифты.
Видеокарта. Через WebGL страница спрашивает название модели. У меня в тестовой среде отрисовки нет, поэтому там пусто, а на обычной машине вернётся конкретная модель, и это сразу сильно сужает круг.
Плюс: поддерживаемые аудиокодеки, поведение звукового движка, набор доступных устройств ввода, точность таймеров, список расширений браузера — часть из них определяется по побочным признакам.
Почему защиты иногда делают хуже
Вот здесь начинается то, о чём почти не говорят.
Отпечаток тем полезнее для трекинга, чем реже встречается сочетание значений. А значит, попытка выделиться работает против вас.
Редкое разрешение экрана, экзотический язык интерфейса, нестандартный часовой пояс, десяток расширений, ручная подмена строки браузера на что-нибудь необычное — каждый такой шаг делает вас более заметным, а не менее. Человек с пятью установленными расширениями приватности и подменённым идентификатором опознаётся точнее, чем человек со стандартным браузером из коробки.
Отсюда два рабочих подхода, и они противоположны друг другу.
Первый — слиться с толпой. Стандартный браузер, стандартные настройки, ничего не трогать. Именно так устроен подход браузера Tor: у всех пользователей одинаковые размеры окна, одинаковый набор шрифтов, одинаковые ответы на все опросы. Смысл не в том, чтобы скрыть параметры, а в том, чтобы они у всех совпадали.
Второй — намеренно врать, но каждый раз по-разному. Некоторые браузеры добавляют в отрисовку canvas и в звуковой отпечаток небольшой случайный шум, свой для каждого сайта и каждой сессии. Тогда отпечаток есть, но он не повторяется, и связать два визита не выходит.
Смешивать эти подходы бессмысленно: полумеры дают худший результат из обоих.
Что делать обычному человеку
Без фанатизма и по убыванию пользы.
Блокировщик содержимого с фильтрацией трекеров закрывает большую часть скриптов сбора ещё до того, как они отработают. Это единственная мера, которая одновременно ускоряет загрузку страниц.
Отдельные браузеры или профили под задачи: один для работы, другой для личного, третий для покупок. Отпечаток внутри профиля не меняется, но связать активность между профилями сложнее, особенно если они ещё и в разных сетях.
Встроенная защита от фингерпринтинга. У Firefox это Настройки → Приватность и защита → Строгая защита; у Brave и Safari похожие механизмы включены по умолчанию. Работают они по второму сценарию, с шумом.
И трезвый взгляд на результат. Полностью анонимным в обычном браузере не стать: слишком много каналов. Реалистичная цель — не «стать невидимым», а «перестать быть удобной мишенью для массового трекинга». Это достижимо и стоит одного вечера настройки.
Проверить себя
Есть публичные страницы, которые собирают отпечаток и показывают, насколько он редкий. Полезнее всего смотреть не на итоговый вердикт, а на разбор по параметрам: там видно, какие именно ваши свойства встречаются реже всего.
Заодно любопытный эксперимент: откройте такую проверку в обычном окне и в приватном. Значения совпадут почти полностью — и это лучшая иллюстрация к тому, что режим инкогнито защищает историю на вашем компьютере, а не вас на чужом сайте.
Комментарии (3)

Emelian
27.08.2026 14:49Обычная логика такая: не хочу, чтобы меня узнавали – открываю приватное окно, и всё, я новый посетитель. Логика была верной примерно до середины десятых годов.
Сейчас узнавание держится не на cookie, а на наборе свойств самого браузера.
Ну, почему логика больше не работает? Вполне себе работает, в некоторых важных случаях. Да, не всегда, но тогда используем более сильное слово, тоже на три буквы, как на заборе.
Например, есть неплохой ИИ-сайтик, который бесплатно распознаёт 15 минут звука (STT), даже слова в песнях, на фоне музыки. А у нас, как назло, аудио из часового французского мультика (например, «Santiago des mers - 1 heure des aventures les plus intrepides de Santiago et Lorelai»). Постоянно «ходить на три буквы» – утомляет.
Выход, не вообще, а для конкретного сервиса, вполне прост. Берем, например, «Хром» (использую старую версию, ради 2-го манифеста), настраиваем очистку всех «куки» на выходе и скармливаем нашему сервису 15-минутный фрагмент из полного аудио. Получаем текст речи и выходим из браузера. Заходим заново и повторяем процесс.
Удивительно, но этот «финт ушами» работает на многих нужных сайтах, что сильно упрощает жизнь.
levge
Я запускаю через скрипт -
#!/bin/bash
Launch Opera in private mode with a new user data directory each time
This ensures no cookies, logins, or history are saved between sessions
Generate a unique temporary directory for this instance
TEMP_DIR=“/tmp/opera-private-
$”
Create the temporary directory and Default subdirectory
mkdir -p “$TEMP_DIR/Default”
Launch Opera with all parameters
–private: Opens in private/incognito mode
–user-data-dir: Uses a temporary directory for this session
–no-first-run: Skips first-run dialogs
–no-default-browser-check: Skips default browser prompt
opera --private
–user-data-dir=“$TEMP_DIR”
–no-first-run
–no-default-browser-check
–disable-session-crashed-bubble
–disable-infobars
–show-bookmarks-bar &
OPERA_PID=$!
wait $OPERA_PID
rm -rf "$TEMP_DIR"
zelenin
вам бы статью почитать