AdGuard DNS 2.11: Фильтрация предзагруженных страниц в Chrome
Браузеры стремятся ускорять свою работу — и это понятное желание: чем быстрее загружаются страницы, тем меньше недовольных пользователей. Но способы, которые они для этого выбирают, иногда мешают работе фильтрации.
Chrome предлагает предзагрузку страниц — эту функцию можно найти в настройках браузера → Производительность. Если её включить, Chrome будет заранее загружать страницы, которые, по его мнению, вы можете посетить следующими.
Например, вы зашли почитать статью, браузер проанализировал все ссылки в ней и решил, что вы захотите перейти по ним. Чтобы следующая страница открылась мгновенно и вам не пришлось ждать ни секунды, Chrome заранее загружает контент оттуда. Но чтобы другой сайт не узнал ваш IP, Chrome использует так называемый private prefetch proxy. Именно через этот прокси-сервер произойдёт загрузка контента, и другой сайт увидит его IP-адрес, а не ваш. Проблему уже видно: если сайт загружается через прокси, к AdGuard DNS запрос не поступит. А значит, он не сможет заблокировать запрос, если это потребуется.
Но Chome предложил обходной путь — сигнал, по которому он поймёт, что пользователю или системному администратору нужна прозрачность DNS-запросов.
Работает это так: при смене сети или при старте Chrome браузер будет делать DNS-запрос к dns-tunnel-check.googlezip.net
. Если в ответе не будет IP-адреса (например, вернётся NXDOMAIN
), Chrome включит так называемый preflight mode. В таком случае, когда пользователь захочет перейти на предзагруженную страницу, Chrome сделает ещё один DNS-запрос — уже к серверу, указанному в системе. Для нас это AdGuard DNS. И если сайт окажется в списке заблокированных, браузер не даст туда перейти, и результаты предварительной загрузки использоваться не будут.
За счёт чего это реализуется? Мы добавили функцию, которая называется Force preflight mode for prefetching in Chrome. Найти её можно в настройках сервера. Технически она представляет собой правило dnsrewrite
:
|dns-tunnel-check.googlezip.net^$dnsrewrite=NXDOMAIN
Это правило возвращает ответ NXDOMAIN
на запрос к dns-tunnel-check.googlezip.net
— так Chrome поймёт, что все запросы, даже для предзагруженных страниц, должны идти через AdGuard DNS.
Но обратите внимание: настройка не сможет выключить предзагрузку страниц и запретить браузеру анализировать ваше поведение на сайтах. Но вы можете сделать это вручную: Настройки → Производительность → Предзагрузка страниц.
Ждём ваших отзывов
Эту функцию добавили, потому что пользователи предложили её на GitHub. Если вы знаете, что ещё мы можем улучшить — пишите нам в соцсети или на GitHub. Мы всё читаем.