вернуться к обзору Больше статей

Могут ли сайты видеть историю браузера? Тест вживую

Спрашиваем браузер о его истории...

Вы один раз посмотрели походные ботинки на сайте одного магазина. Теперь на каждом сайте вам предлагают походные ботинки. Напрашивается вывод: сайты читают вашу историю браузера и передают её друг другу. Это не так. В современных браузерах ни один сайт не может прочитать список сайтов, на которых вы были, а следят за вами всё равно.

Виджет на этой странице спрашивает ваш браузер, что он готов рассказать странице о том, где вы бывали. Почти ничего, и так задумано.

Если коротко: страница не может прочитать историю вашего браузера, то есть список сайтов, которые вы посещали. Приём, которым раньше её имитировали, проверка ссылок через :visited, закрывали поэтапно с 2010 года. Страница всё ещё может прочитать немногое: сайт, с которого вы пришли, сколько шагов назад доступно по кнопке «Назад» и собственные записи о вас. Остальную картину собирают трекеры, которые стоят на многих сайтах, и сети, по которым идёт ваш трафик.

Ни один API не отдаёт вашу историю

Посмотрите, что window.history даёт скрипту: back(), forward(), go(), pushState(), replaceState(), state, scrollRestoration и length. Ничто из этого не возвращает адрес. history.length считает записи текущей вкладки и упирается в 50 в Chrome и Firefox (Safari хранит 100), так что о том, много ли вы просмотрели, он говорит мало.

Новый Navigation API, navigation.entries(), адреса возвращает, но только для записей текущей вкладки с тем же origin (схема, домен и порт), что и у страницы, и только непрерывную цепочку таких записей. Страница читает свой собственный след и ничей больше. В моём тесте на Chromium 156 я перешёл по ссылке с одного origin на эту страницу на другом: history.length показал 2, а navigation.entries() вернул одну запись, текущую страницу. Firefox и Safari я не проверял.

Трюк с :visited и как он умер

Годами существовала лазейка. Браузеры красят посещённые ссылки другим цветом, а страница могла спросить, какого цвета получилась ссылка. Скрипт создавал невидимую ссылку на страницу входа в банк, читал её вычисленный цвет и знал, были ли вы там. Mozilla оценивала скорость в сотни тысяч ссылок в минуту, без запроса разрешения, и вы ничего не замечали.

В марте 2010 года Mozilla объявила об исправлении: getComputedStyle стал отвечать так, будто все ссылки не посещались, а посещённые ссылки можно оформлять лишь несколькими цветовыми свойствами. Сейчас так работают все крупные движки. Первая строка виджета показывает это. Она спрашивает про ссылку на страницу, которую вы читаете прямо сейчас, а вы её, разумеется, посетили, и браузер отвечает «нет».

Ложь про цвета закрывает только прямой путь. Исследователи продолжали находить побочные каналы, например атаку Пола Стоуна 2013 года, которая измеряет, сколько времени занимает перерисовка посещённой ссылки, и каждый канал требовал отдельной заплатки. Ответ Chrome, доступный с версии 136 на десктопе и Android, меняет место хранения посещений. Список посещённых ссылок перестал быть единым. Каждая запись хранится под тремя ключами: адрес ссылки, сайт верхнего уровня, на котором вы были, и фрейм, показавший ссылку. Страница на blog.example, проверяющая, были ли вы в банке, теперь обращается к другому ключу, чем тот, под которым сохранён ваш визит в банк, и ничего не находит.

Что узнает скрытая проверка ссылок
До Chrome 136, если сработает побочный канал
Ваши посещённые ссылки
  • bank.example/login открыта с bank.example
  • news.example/story открыта с поисковой страницы
  • blog.example/post открыта с blog.example
Страница на blog.example спрашивает про три ссылки
  • bank.example/login посещена: утечка
  • news.example/story посещена: утечка
  • blog.example/post посещена (сайт и так знал) его страница
При одном общем списке страница, нашедшая любой побочный канал, узнаёт, где вы держите деньги и что читали.

Собственные страницы сайта по-прежнему отображаются как посещённые, откуда бы вы их ни открыли впервые, как и ссылки, по которым вы перешли с этого сайта. Это ничего нового не раскрывает, потому что сайт и так знает и то, и другое. Насколько я смог проверить, в Firefox и Safari аналога такого разделения нет, как нет его и у Chrome на iOS, который работает на WebKit. Правило 2010 года и само по себе не было герметичным: в примечаниях к Safari 26.6 за июль 2026 года исправлена ошибка WebKit, из-за которой сайты могли узнать, посещали ли вы определённую ссылку.

Что сайт может увидеть о вашем сёрфинге

Referrer. Если вы пришли из результатов поиска, страница может узнать, какой сайт вас направил. Начиная с Chrome 85 и Firefox 87 для переходов между разными origin по умолчанию отправляется только origin, то есть https://www.google.com/, а не ваш запрос, если только отправивший сайт не задал собственную политику. Safari тоже обрезает referrer при переходах между сайтами. В том же тесте на Chromium 156 страница, с которой я пришёл, имела длинный путь, а document.referrer вернул только её origin. Если вы набрали адрес или открыли закладку, значение пустое. Поэтому сайт, на который вы переходите, не видит, что вы искали: ваши запросы остаются у поисковой системы и в вашем аккаунте, а не на странице.

Собственные записи сайта. Это главное, и оно скучное. Сайт, поставивший cookie, когда вы заходили в прошлый вторник, узнает вас и в этот вторник. Это история одного сайта, а не всего интернета, и каждый сайт, который вы посещаете, ведёт такую о вас. Владелец сайта видит своих посетителей в аналитике: адреса страниц, IP-адреса и referrer. Дальше границ сайта эта картина не идёт.

Несколько утечек по краям. Межсайтовые приёмы иногда позволяют узнать, выполнен ли у вас вход где-то ещё: страница загружает что-то, что работает только для вошедших пользователей, и смотрит, что получилось. Всё семейство описано в вики XS-Leaks. Такой приём сообщает странице один бит об одном сайте за раз, одни каналы закрывают, а новые продолжают появляться. На список всё это не похоже.

Как трекеры всё равно собирают вашу историю

Реклама преследует вас в основном из-за того, кто ещё присутствует на странице. Скрипт рекламной сети стоит и на сайте обувного магазина, и на новостном сайте. Если он узнаёт вас на обоих, у него есть история вашего сёрфинга, собранная по сайтам, одному за другим, без какой-либо помощи со стороны истории вашего браузера. У FTC есть понятный обзор того, как сайты и приложения это собирают.

Safari полностью блокирует сторонние cookie, а Firefox разделяет их по сайтам. По состоянию на ноябрь 2026 года Chrome по умолчанию их всё ещё разрешает. Cookie лишь один из способов вас узнать. Отпечаток canvas в большинстве браузеров может оставаться одинаковым на всех сайтах, ничего не сохраняя, поэтому очистка истории против него бессильна.

Скрипт трекера выполняется и внутри той страницы, где он стоит, поэтому может прочитать её адрес и заголовок, а не просто отметить, что вы пришли. Об остальном рассказывает наша статья о том, что страница может наблюдать во время визита.

Кто ещё может видеть историю вашего браузера

Уберите страницу из картины и посмотрите на всех остальных на пути между вами и сайтом. Большинство видит лишь часть. Исключение составляет синхронизируемый аккаунт браузера.

Кто видит какую часть вашей истории
Кто
Какие сайты
Какие страницы и запросы
Что на страницах
Сайт, на котором вы находитесь
Видит часть: название предыдущего сайта, если передано
Не видит: только свои страницы
Не видит: только своё содержимое
Трекер, встроенный на оба сайта
Видит: где встроен, если узнаёт вас
Видит: адреса страниц, где он стоит, если его скрипт выполняется на странице
Видит часть: заголовок страницы и всё, что читает его скрипт
Ваш провайдер или владелец Wi-Fi
Видит: обычно доменные имена и IP серверов
Не видит: пути при HTTPS зашифрованы
Не видит: зашифровано
Ваш синхронизируемый аккаунт браузера
Видит: всё, если синхронизация включена и компания может прочитать
Видит: полные адреса, если читаются
Не видит: не хранится
  • Видит
  • Видит часть
  • Не видит
Большинство строк видят лишь часть. Всё целиком видит только синхронизируемый аккаунт, и только если компания может его прочитать. VPN не убирает долю провайдера, а переносит её на VPN-провайдера.

Ваш провайдер или тот, кто держит Wi-Fi в отеле или офисе, не может прочитать адреса страниц на сайтах с HTTPS. Доменные имена он, как правило, всё же видит, потому что DNS-запрос и начало TLS-соединения называют сайт. Зашифрованный DNS и Encrypted Client Hello на некоторых сайтах это скрывают, но IP-адрес сервера остаётся виден. VPN эту долю не стирает, а передаёт большую её часть VPN-провайдеру, и провайдеру остаётся знать лишь то, что вы им пользуетесь. Как сайты это замечают, мы разбираем в статье про определение VPN.

Про одну строку люди забывают: это аккаунт самого браузера. Если синхронизация истории включена, полный список открытых вами адресов может лежать на сервере разработчика браузера. В Chrome Google может читать синхронизированную историю, пока вы не задали кодовую фразу синхронизации, а с ней синхронизируются только адреса, которые вы набрали в адресной строке. Firefox Sync и iCloud шифруют историю, так что эти компании прочитать её не могут.

Что меняют инкогнито, очистка истории и переход на телефон

Приватный режим не даёт вашему браузеру сохранять список и стартует с чистыми cookie. Сайт, ваш провайдер и владелец Wi-Fi всё равно видят визит, а в большинстве браузеров отпечаток по-прежнему вас узнаёт. Safari, Firefox в приватных окнах, Brave и Tor добавляют шум или единообразие, которые это затрудняют. Очистка истории стирает список, который хранит ваш браузер, и вместе с ним синхронизированную копию, но не то, что уже есть у сайтов, трекеров или провайдера. Журнал активности аккаунта, такой как «Мои действия» у Google, хранит собственную копию, пока вы не удалите её там. С телефоном работает та же логика: страница получает те же немногие показания, а значимая история лежит в аккаунте или в сети, а не в браузере. Так что если вы опасаетесь, что историю увидит партнёр или родитель, проверьте два места: аккаунт, к которому есть доступ у вас обоих, с его синхронизацией и журналом активности, и сеть, по которой идёт трафик.

Что делать на практике

  1. Проверьте первую строку виджета. Там должно быть «Закрыто». Если там «Утечка», ваш браузер старше исправления 2010 года или в нём не хватает заплатки. Обновите его, а в Safari убедитесь, что у вас версия 26.6 или новее.
  2. Проверьте, что вы синхронизируете. Откройте настройки синхронизации браузера и решите, нужна ли история в аккаунте. В Chrome кодовая фраза синхронизации не даёт Google её читать. Firefox Sync и iCloud шифруют историю по умолчанию.
  3. Очистка истории не остановит слежку. Она стирает список, который хранит ваш браузер, и вместе с ним синхронизированную копию. Cookie и данные сайтов она не трогает и не достаёт до того, что уже есть у сайтов, трекеров или провайдера. Очистка cookie убирает ту часть слежки, что держится на cookie, а та, что держится на отпечатке, в большинстве браузеров переживает и очистку истории, и очистку cookie.
  4. Разделяйте личности осознанно. Трекеры работают за счёт связывания данных, поэтому всё, что нельзя связывать, должно иметь собственные cookie, хранилище и отпечаток. Если вы ведёте несколько аккаунтов таким образом, Incogniton даёт каждому профилю собственные cookie, хранилище и отпечаток, так что трекер, стоящий на двух сайтах, видит двух незнакомцев, при условии, что вы открываете каждый сайт из отдельного профиля и даёте каждому профилю свой IP-адрес через прокси.

Виджет проверяет то, что страница может прочитать. Полное сканирование браузера проверяет, что страница может выяснить о вас по свойствам, которые по отдельности выглядят безобидно: хеши отпечатков, утечки вокруг вашего IP-адреса и то, рассказывает ли ваш браузер одну согласованную историю.

Логотип Incogniton

Повысьте уровень своей приватности

Стрелка