uBlock Origin
Цель этой заметки только ознакомить с возможностями, а подробности стоит уточнять в вики.
Это opensource кросс-платформенное расширение браузеров для фильтрации и блокировки рекламы/контента, написанное Реймондом Хиллом на JavaScript. uBlock Origin поддерживают большую часть синтаксиса фильтра Adblock Plus. Популярные списки фильтров EasyList и EasyPrivacy включены как подписки по умолчанию. Расширения могут импортировать файлы hosts, а ряд поддерживаемых сообществом списков доступен при установке. Согласно политике конфиденциальности uBlock Origin: обработка персональных данных пользователей не осуществляется, в отличие, например, от политик конфиденциальностей Adblock Plus или uBlock.
Казалось бы это лишь расширение браузера, но столько функциональности не в каждой программе. uBlock Origin меняет сам принцип, "психологию" взаимодействия с контентом - не сайт показывает вам все что хочет, а вы разрешаете сайту показать то что вам нужно. Если браузер обеспечивает графический интерфейс для гуляния по интернету, то ublock дает реальный контроль над этим интерфейсом. Данный код хотелось бы видеть в браузере по дефолту, что пока видел только у LibreWolf. В процессе пользования приходит понимание, что белые списки зачастую более правильное решение нежели черные, объем регулярно посещаемых сайтов обычно невелик. Использовать же нужно и то и то.
Main
Rules
Из коробки у нас есть быстрый доступ наиболее важным функциям. Нажатие кнопки применяет/отменяет настройки для текущего сайта. Рядом с кнопкой отбражаются срабатывания. Правила применяются поверх фильтров.
block/unblock all popups
block/unblock large media
disable/enable cosmetic filtering
block/unblock remote fonts
disable/enable JavaScript
Filters
Zapper позволяет без размышлений убрать какой то элемент, что должно хорошо работать для не очень популярных сайтов.
Picker дает возможность подобрать косметический фильтр на выбор. Полистать можно ползунком или потыкав по списку. Также есть preview. В отличие от zapper можно выбрать фильтр более широкого охвата, что правда не всегда помогает от обфускации популярных сайтов.
Logger
Cодержит кучу функционала, фильтры поиска и собственные настройки, что делает его очень удобным и полезным если вам захочется копнуть глубоко. Базово стоит выбрать нужную вкладку.
Settings
Все разбирать не буду, выделю интересное.
Block media elements larger than KB
Отличный вариант заблочить все media по дефолту выставив 0KB и давать исключение доверенным сайтам. Ускорит загрузку новых страниц, вырубит веcьма вероятные рекламные вставки/ агрессивные баннеры.
Block remote fonts
Из коробки в ОС сейчас в достатке шрифтов, скачивать новые ради какого то сайта странная затея. Также популярной практикой ныне является тянуть шрифты например у гугла, а не хранить их на сервере. Можно заблочить такое странное поведение и даже чутка ускорить загрузку страниц.
Disable JavaScript
JS сейчас почти повсеместно, но хорошей практикой будет разрешать его только по исключению. Это ускорит загрузку новых страниц, защитит от агрессивных скриптов, хотя наверняка будет ломать сайты. Если как итог вы даете исключение всем сайтам, то проще настрокой не пользоваться.
I am an advanced user
Это дает нам доступ к динамической фильтрации в окошке расширения(если не появилось нажать more):
all
images
3rd-party
inline scripts
1st-party scripts
3rd-party scripts
3rd-party frames
Ниже вылезут все домены которые тянет сайт
Правила интересны тем что применяются поверх фильтров. У каждого пункта есть пара столбцов, левый применяется глобально, правый локально(для каждого сайта). Тыкая на края столбца можно разрешать(слева) или запрещать(справа) контент. images казалось бы дублирует настройки, но по сути добавляет больше гибкости. Здесь хорошо сразу вырубить глобально весь 3rd-party контент, если что давать сайту исключение. Данная настройка прекрасно ломает всякую аналитику, внешние скрипты, шрифты и прочие интеграции. Изменения настроек надо сохранять нажимая на значок замочка.
filter list
Фильтров можно добавить очень много, но толк с этого ограниченный. Основная часть фильтров заточена не под рунет, тоесть вероятность их использования невелика. Из встроенного хорошо включить региональный фильтр - RU AdList Также стоит упомянуть custom фильтры, из популярных в рунете:
- AdGuard Annoyances filter
- AdGuard Russian filter
- Filters by hant0508
- RU AdList: BitBlock + Fanboy's General
- RU AdList: Counters
- uBlock₀ filters – Resource abuse чинит то что могли поломать другие фильтры
В идеале все фильтры хорошо хотябы бегло просматривать, т.к. они могут что то ломать или быть безполезны.
my filters
Здесь будет все добро, что мы натыкаем через zapper или picker, а возможно и то что не поленимся написать. (дать ссылку на правила) Наиболее актуальными для меня показались блокировки html тагов по классу и по ссылке:
домен##htmltag[атрибут]
www.domain.ru##h1[class^="index-heading-"]
www.domain.ru##a[href^="/profile/campaigns?source=sidebar"]
Есть встроенный валидатор, который выделяет некорректные правила и подсказывает почему вы не правы. Создать свои фильтры может помочь подробная статья от adguard
Интересные примеры.
Фильтрация выдачи поисковика
!Соцсети html.duckduckgo.*##.results > div:has(a[href*="/reddit.com"]) html.duckduckgo.*##.results > div:has(a[href*="www.instagram.com"]) html.duckduckgo.*##.results > div:has(a[href*="/linkedin.com"]) html.duckduckgo.*##.results > div:has(a[href*="/pinterest.com"]) html.duckduckgo.*##.results > div:has(a[href*="/pinterest.ch"]) html.duckduckgo.*##.results > div:has(a[href*="/pinterest.ie"]) html.duckduckgo.*##.results > div:has(a[href*="pinterest.com.au"]) html.duckduckgo.*##.results > div:has(a[href*="/facebook.com"]) html.duckduckgo.*##.results > div:has(a[href*=".facebook.com"]) html.duckduckgo.*##.results > div:has(a[href*="/twitter.com"]) html.duckduckgo.*##.results > div:has(a[href*="/tiktok.com"]) html.duckduckgo.*##.results > div:has(a[href*=".tiktok.com"]) html.duckduckgo.*##.results > div:has(a[href*="/rutube.ru"]) !Маркетплейсы html.duckduckgo.*##.results > div:has(a[href*="market.yandex.ru"]) html.duckduckgo.*##.results > div:has(a[href*="/sbermegamarket.ru"]) html.duckduckgo.*##.results > div:has(a[href*="www.ozon.ru"]) html.duckduckgo.*##.results > div:has(a:is(a[href*="www.amazon."], a[href*="/amazon.de"], a[href*="/amazon.com"], a[href*="/amazon.nl"], a[href*="/amazon.ca"]))Фильтрация выдачи маркетплейса
!Убираем записи с долгой доставкой(которых нет в наличии)
www.chipdip.ru##tbody > .with-hover:has(span:contains(недел))
www.chipdip.ru##tbody > .with-hover:has(span:contains(По запросу))
my rules
Тут динамические правила разделенные на постоянные и временные(дублируют постоянные). Все что вы натыкаете в динамической фильтрации будет отображено здесь. Схема работы здесь напоминает контроль версий.
trusted sites
Это список сайтов которым вы безоговорочно доверяете, где ublock будет отключен. По сути сюда будут попадать "капризные" сайты, для которых вам лень правильно настроить исключения. Лучше данного использования избегать, ограничивая свое доверие локальной сетью.
backup
Если вы еще не делаете, то отличная возможность начать. Это избавит от необходимости настраивать ublock повторно с нуля если что случится или на другой машине. Есть возможность как экспортировать все настройки так и отдельно вытащить фильтры/правила. Интересный вариант хранить свои фильтры публично в какой то системе контроля версий и подключать к ublock как custom filter.
uMatrix
Если вам мало uBlock, то uMatrix, от тогоже автора, даст возможность динамически настраивать разрешения более точечно. Он как дублирует так и дополняет uBlock. По факту uMatrix это полноценный firewall. [вики] [код]
uBlacklist
Для более простой и удобной фильтрации поисковой выдачи есть uBlacklist. [инструкция] [код]
Built on GitHub with MkDocs and Pure theme