Однако это удобство обернулось уязвимостью.
С помощью анализа стилей отрисованных ссылок можно было выяснить, какие страницы были посещены, что открывало путь для скрытых атак. Эта техника называется Visited Link Sniffing.
Как браузеры защищали от этого?
Для борьбы с такой угрозой браузеры внедряли различные меры:
✅ Ограничение доступа к вычисляемым стилям для
:visited✅ Игнорирование некоторых стилей вообще
Но эти подходы оставались полумерами, так как информация о посещённых ссылках оставалась глобальной, и её всё ещё можно было использовать для скрытого отслеживания. Например, буквально считая миллисекунды парсинга стилей: https://codepen.io/alinaki/pen/ogNrVoj
Примечание: это будет работать только на Firefox и Safari и только на достаточно старых машинах.
Что теперь предлагает Google?
В Chrome 123 появился новый подход — Partitioned Visited Links History. Теперь ссылки считаются посещёнными только в пределах определённого контекста. Например, для одного сайта или даже внутри конкретного iframe.
Это значит:
✅ Один сайт не будет знать, какие страницы вы посетили на другом.
✅ История посещений разделена на изолированные части (partition'ы).
Псевдокласс
:visited больше не работает глобально — он зависит от контекста.Собственно, смотрим на иллюстрацию: пока вы не посетили ссылку на каком-то сайте, она подсвечиваться не будет. А вот в каком-нибудь поисковике или соцсети, куда вы заходите постоянно — будет. Что буквально нивелирует суть атаки.
Это не только предотвращает старые методы слежки, но и делает браузеры более приватными по умолчанию. Защита теперь встроена в механизм работы с веб-страницами.
👉 Подробности:
https://github.com/explainers-by-googlers/Partitioning-visited-links-history
#history #security #safety
