Меню
RU

Что случилось с Пользовательскими фильтрами и Фильтром быстрых исправлений: особенности политики MV3

“Где Пользовательские фильтры? И что случилось с Фильтром быстрых исправлений?”

Чтобы соответствовать строгой политике Chrome в отношении удалённого выполнения кода в рамках Manifest V3, нам пришлось принять несколько сложных решений. Пользовательские фильтры временно недоступны, а Фильтр быстрых исправлений удалён насовсем.

Почему так? Дело в том, что политика Chrome запрещает внедрять скрипты или удалённо размещённый код. Хотя цели у этой политики благие, формулировка её настолько широка, что даже правила блокировки рекламы могут попасть под её ограничения — и, к сожалению, Пользовательские фильтры и Фильтр быстрых исправлений попали под них.

Почему это проблема

Прежде всего, Фильтр быстрых исправлений появился только из-за ограничений MV3.

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

В MV2-раширении на такой случай мы внедрили дифференциальное обновление: мы быстро выпускаем новые фильтры, не обновляя всё расширение. Но в MV3-расширении так не получится, и Фильтр быстрых исправлений был нашим способом оперативно обновлять фильтры.

Несмотря на все наши усилия сохранить этот фильтр (историю нашей мучительной борьбы за него можно прочитать ниже), политика Chrome всё-таки вынудила нас полностью удалить его. И это только одна потеря.

Другая потеря — это Пользовательские фильтры, которыми пришлось пожертвовать из-за той же политики удалённого выполнения кода.

Пользовательские фильтры позволяют добавлять сторонние фильтры через URL. Тысячи волонтёров поддерживают эти фильтры, они необходимы для развития экосистемы блокировки рекламы — именно благодаря Пользовательским фильтры люди могут настраивать фильтрацию, тестировать и распространять эти фильтры. А включать просто любые фильтры в наши «готовые» фильтры мы не можем, да это и не должно быть необходимо.

Отсутствие Пользовательских фильтров — это не просто неудобство для пользователей; мы стараемся сделать всё, чтобы расширение оставалось эффективным для них. Однако, как мы уже говорили в одном из наших многочисленных постов, посвящённых MV3, «настоящими жертвами этого перехода являются разработчики фильтров». Потеря Пользовательских фильтров — это удар по сообществу, которое поддерживает мир блокировки рекламы.

Как мы её решаем

Нам предстоит глобальная переработка того, как применяются правила фильтрации AdGuard, и мы рассчитываем сохранить функциональность расширения, строго следуя политике Chrome. Вот что мы делаем:

  • Чтобы вернуть Пользовательские фильтры, мы будем использовать API userScripts. Этот API позволяет регистрировать скрипты в соответствии с политикой MV3.

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

  • Поскольку Фильтр быстрых исправлений больше не может существовать в своём первоначальном виде, мы переходим на ускоренный процесс проверки в Chrome (Skip Review). Так мы сможем чаще обновлять фильтры, не дожидаясь полной проверки. Однако у этого метода есть некоторые ограничения: он применяется только к изменениям в группах DNR правил и только тех, котоые классифицируются как безопасные.

    Скоро у нас будет два типа обновлений: ускоренные, которые будут происходить автоматически каждые несколько часов, и полные — с проверкой в интернет-магазине Chrome.

Путь даже к этому неидеальному решению был долгим и выматывающим. Ниже — хронология всех наших попыток сделать так, чтобы расширение соответствовало политике Chrome, но при этом эффективно блокировало рекламу и позволяло пользователям настраивать фильтрацию так, как им хочется.

Хронология борьбы

  • Первый отказ: удалённое выполнение скрипта

Сначала наше расширение отклонили в магазине Chrome из-за того, что мы внедряем скрипты с помощью тегов <script>. Мы действительно использовали механизм, при котором расширение извлекало скрипты из правил и применяло их к странице через тег <script>. Для MV3-расширений требования политики Content Security Policy более строгие, чем для MV2, и мы не можем просто внедрять правила со скриптами, что сильно ограничивает доступные разработчикам инструменты для изменения содержимого страницы. Поэтому в некоторых случаях мы прибегали к использованию <script>. Это и стало проблемой.

Что мы сделали:

Мы преобразовали правила скриптов в локальные функции JavaScript, хранящиеся в расширении. Также мы добавили проверки, чтобы убедиться, что правила не содержат тегов <script> и что скрипты являются частью встроенных правил, прежде чем применять их.

Но мы оставили исключения для Пользовательских правил, Пользовательских фильтров и Фильтра быстрых исправлений, которые по-прежнему использовали <script> для внедрения правил.

Версию с этими изменениями одобрили. А потом отклонили.

  • Второй отказ: загрузка Фильтра быстрых исправлений

На этот раз Chrome интерпретировал механизм загрузки Фильтра быстрых исправлений из удалённого источника как нарушение политики удалённого выполнения.

Что мы сделали:

Мы добавили подробные комментарии, объясняющие назначение Фильтра быстрых исправлений, и пояснили, что он разработан для устранения ограничений MV3 и не нарушает политики.

Этого оказалось недостаточно, чтобы пройти проверку в Chrome. Так мы получили…

  • Третий и четвёртый отказы: весь код Фильтра быстрых исправлений

Чтобы удовлетворить требования Chrome, мы полностью удалили Фильтр быстрых исправлений и повторно отправили расширение на проверку. Получив отказ, мы связались с поддержкой и отправили версию, которая полностью запрещала загрузку кода и метаданных Фильтра быстрых исправлений. И эту версию первоначально одобрили, но...

  • Пятый отказ: скриплеты и параметры

Chrome отметил использование скриптлетов — встроенных функций JavaScript — как нарушение политики удалённого выполнения, поскольку они могут выполняться с разным набором параметров.

Что мы сделали:

Мы захардкодили все скриптлеты непосредственно в расширении. Теперь механизм расширения проверяет, соответствует ли правило предварительно встроенной категории фильтра (например, Блокировка рекламы или Безопасность). Если совпадение есть, правило применяется, а если нет — отклоняется.

Также мы вернули Фильтр быстрых исправлений в ограниченном виде, но без выполнения на основе <script>.

Несмотря на все изменения, расширение всё равно было отклонено.

Это больше, чем AdGuard

Конечно, мы найдём выход из сложившейся ситуации — нам не впервой преодолевать трудности. Но эта ситуация касается не только AdGuard: политика Chrome затрагивает все блокировщики рекламы и все расширения.

Разработчикам нужны более чёткие руководства и бо́льшая прозрачность от интернет-магазина Chrome. Мы надеемся, что эта ситуация послужит толчком к разговору о балансе между безопасностью и функциональностью — это поможет и разработчикам, и пользователям.

Понравился пост?
26 055 26055 отзывов
Отлично!

AdGuard для Windows

AdGuard для Windows — это не просто «ещё один блокировщик». Это многоцелевой инструмент, который блокирует рекламу и доступ к опасным сайтам, ускоряет загрузку страниц и защищает детей от взрослого контента.
Скачивая программу, вы принимаете условия Лицензионного соглашения
Узнать больше
26 055 26055 отзывов
Отлично!

AdGuard для Mac

В отличие от других блокировщиков, AdGuard разработан с учётом специфики операционной системы macOS. Он не только блокирует рекламу в Safari и других браузерах, но и защищает вас от слежки, фишинга и мошенничества в сети.
Скачивая программу, вы принимаете условия Лицензионного соглашения
Узнать больше
26 055 26055 отзывов
Отлично!

AdGuard для Android

AdGuard для Android — это идеальное решение для Android-устройств. В отличие от других блокировщиков, AdGuard не требует root-доступа и позволяет управлять трафиком любых приложений на вашем устройстве.
Скачивая программу, вы принимаете условия Лицензионного соглашения
Узнать больше
26 055 26055 отзывов
Отлично!

AdGuard для iOS

Лучший блокировщик рекламы для iPhone и iPad. AdGuard устраняет рекламу в Safari, защищает ваши данные и ускоряет загрузку страниц. AdGuard для iOS использует новейшую технологию блокировки, которая обеспечивает непревзойденное качество фильтрации и позволяет применять множество различных фильтров одновременно
Скачивая программу, вы принимаете условия Лицензионного соглашения
Узнать больше
26 055 26055 отзывов
Отлично!

AdGuard Content Blocker

AdGuard Content Blocker устраняет все объявления в мобильных браузерах, которые поддерживают технологию блокировки контента — к примеру, Samsung Internet и Яндекс.Браузер. Он обладает меньшим количеством функций, чем AdGuard для Android, но при этом бесплатен, прост в установке и по-прежнему обеспечивает высокое качество блокировки рекламы.
Скачивая программу, вы принимаете условия Лицензионного соглашения
Узнать больше
26 055 26055 отзывов
Отлично!

Браузерное расширение AdGuard

AdGuard — самое быстрое и легкое браузерное расширение для блокировки всех типов рекламы! Выбирайте AdGuard для быстрого и безопасного серфинга без рекламы.
26 055 26055 отзывов
Отлично!

Помощник AdGuard

Дополнительное браузерное расширение для десктопных приложений AdGuard. Даёт доступ к таким функциям в браузере, как блокировка отдельных элементов, занесение сайта в белый список или отправление отчёта.
26 055 26055 отзывов
Отлично!

AdGuard DNS

AdGuard DNS – это альтернативный способ заблокировать рекламу, защитить личные данные и оградить детей от взрослых материалов. Он прост в настройке и использовании и обеспечивает необходимый минимум защиты от рекламы, трекинга и фишинга, независимо от платформы.
26 055 26055 отзывов
Отлично!

AdGuard Home

AdGuard Home — мощный сетевой инструмент против рекламы и трекинга. С усилением роли интернета вещей становится все более и более важным управлять всей вашей сетью. После настройки AdGuard Home будет охватывать ВСЕ ваши домашние устройства и для этого вам не понадобится программное обеспечение на стороне клиента.
26 055 26055 отзывов
Отлично!

AdGuard Pro для iOS

AdGuard Pro предлагает гораздо больше чем просто блокировку рекламы в Safari, которая есть в обычной версии. С помощью специальных настроек DNS вы сможете блокировать больше рекламы, защитить ваши личные данные и оградить детей от взрослого контента.
Скачивая программу, вы принимаете условия Лицензионного соглашения
Узнать больше
26 055 26055 отзывов
Отлично!

AdGuard для Safari

Расширения, блокирующие рекламу в Safari, переживают не лучшие времена с тех пор, как компания Apple вынудила всех использовать новый SDK. Познакомьтесь с нашим легко настраиваемым и молниеносным приложением!
26 055 26055 отзывов
Отлично!

AdGuard для Android TV

AdGuard для Android TV — единственное приложение, которое блокирует рекламу, защищает ваши данные и действует как фаервол для Smart TV. Получайте предупреждения о веб-угрозах, используйте безопасный DNS, а ваш трафик будет зашифрован. Смотрите любимые сериалы безопасно и без рекламы!
26 055 26055 отзывов
Отлично!

AdGuard для Linux

AdGuard для Linux — это первый в мире блокировщик рекламы, работающий на уровне системы. Блокируйте рекламу и трекеры, выбирайте предустановленные фильтры или добавляйте свои — всё через интерфейс командной строки
26 055 26055 отзывов
Отлично!

AdGuard Temp Mail

Ваш временный почтовый ящик, чтобы на основную почту не приходил спам
26 055 26055 отзывов
Отлично!

AdGuard Mail β

Сохраняйте анонимность, избавьтесь от спама и защитите почту с нашими алиасами и временными адресами. Наш сервис пересылки бесплатный и подходит для всех операционных систем
Загрузка AdGuard началась Стрелка указывает на файл: нажмите на него, и установка начнётся Выберите «Открыть», нажмите «OK» и дождитесь загрузки файла. В открывшемся окне перетащите значок AdGuard в папку «Приложения». Спасибо за выбор AdGuard! Выберите «Открыть», нажмите «OK» и дождитесь загрузки файла. В открывшемся окне нажмите «Установить». Спасибо за выбор AdGuard!
AdGuard есть и в мобильном варианте