Новая редакция манифеста Chrome сделает невозможным использование uBlock Origin
23 января 2019 года
Рэймонд Хилл (Raymond Hill), автор систем блокирования нежелательного контента uBlock Origin и uMatrix, предупредил о невозможности использования в браузере Chrome дополнения uBlock Origin в случае утверждения третьей версии манифеста Chrome.
Манифест определяет перечень возможностей и ресурсов, предоставляемых дополнениям Chrome. В текущем черновом варианте третьей версии манифеста прекращена поддержка обработки API webRequest в блокирующем режиме и в качестве замены предложено использовать существенно более ограниченный API declarativeNetRequest. По мнению Рэймонда Хилла предложенного API недостаточно для обеспечения полноценной блокировки рекламы и в случае утверждения манифеста дополнения uBlock Origin и uMatrix не смогут выпускаться для Chrome.
При этом изменение не повлияет на работу блокировщика Adblock Plus, построенного на базе API declarativeNetRequest. Рэймонд отмечает, что при помощи декларативного API declarativeNetRequest невозможно создавать эффективные движки для блокировки нежелательного контента, так как данный API является уже готовой сильно ограниченной реализацией одного специфичного движка и не даёт самостоятельно контролировать поступающий контент на низком уровне. С мнением Рэймонда также согласились разработчики блокировщика AdGuard, который также затрагивают вводимые изменения.
Из недостатков API declarativeNetRequest называется жесткое ограничение максимального числа подключаемых фильтров - список правил фильтрации ограничивается 30 тысячами записей, что недостаточно с учётом того, что только в одном списке EasyList присутствует более 42 тысяч блокировок. Кроме того, предложенный API не даёт использовать собственные алгоритмы фильтрации и не позволяет создавать сложные правила, перекрывающие друг друга в зависимости от условий. При помощи API declarativeNetRequest также невозможно организовать блокировку больших мультимедийных элементов, остановить выполнение JavaScript через подстановку директив CSP и удалить заголовки с Cookie.
В качестве причины прекращения поддержки API webRequest называется желание защитить пользователей от неконтролируемого доступа дополнений к контенту. По мнению Google пользователи должны иметь возможность определить, какая информация доступна дополнению, а какая нет. API declarativeNetRequest не даёт дополнению прямого доступа к сетевым запросам, а лишь позволяет задавать правила блокировки, но обрабатывает их самостоятельно.
Отмечается также, что использование webRequest приводит к замедлению отображения контента, так как данный API работает в блокирующем режиме и перед выводом страницы браузер ожидает полного завершения обработки данных дополнением. В соответствии с планом Google, частично поддержка API webRequest будет сохранена, но ограничена неблокирующим режимом, подходящим только для чтения запросов и анализа трафика, а работающие в блокирующем режиме возможности, такие как перехват, перенаправление и модификация содержимого, будут отключены.
По мнению Рэймонда Хилла прекращение поддержки уже 7 лет существующего API со ссылками на защиту приватности пользователей является странным шагом, так как логичнее было добавить отдельное разрешение, позволяющее пользователю выборочно предоставлять доступ избранным дополнениям к webRequest, а не полностью удалять данный API. Вызывает вопросы и то, что работа по удалению webRequest началась в предвкушении повсеместного введения в строй собственного блокировщика Google, в котором реализация declarativeNetRequest близка к движку блокировщика Adblock Plus, заключившего соглашение о помещении рекламных сетей Google, Amazon и Microsoft в белый список.
Дополнение 1: Разработчики Adblock Plus сообщили, что изменение коснётся и их продукта, так как API declarativeNetRequest покрывает лишь ограниченную часть возможностей, используемых в данном блокировщике рекламы. Adblock Plus также использует список блокировки EasyList, поэтому на него повлияет и ограничение на число записей.
Дополнение 2: Автор проекта NoScript упомянул, что прекращение поддержки средств для изменения контента через API webRequest ставит крест на разработке порта NoScript для Chromium, который развивается уже около года и уже почти доведён до готовности.
Дополнение 3: Разработчики проекта AdGuard, который также попадает под удар в случае ограничения API webRequest, обратили внимание на другое изменение в манифесте - новую систему доступа на уровне хостов (прекращение поддержки полномочия "all_urls"), которая потребует от пользователя подтверждения активации дополнения для каждого сайта. Т.е. даже если API webRequest будет сохранён, пользователям будет выводиться диалог с подтверждением предоставления полномочий для каждого впервые открываемого сайта.
Дополнение 4: Представители компаний F-Secure, Blockade.io и Ermes Cyber Security заявили, что с проблемами столкнутся не только разработчики дополнений для блокирования рекламы, но и производители дополнений для защиты от вредоносного ПО, фишинга и шпионящей за пользователями активности, а также дополнений для родительского контроля. Отмечается, что API declarativeNetRequest и заявленных лимитов недостаточно для реализации подобных дополнений (базы блокировки фишинга могут включать миллионы записей, а список Blockade содержит 250 тысяч записей, что никак не сочетается с лимитом в 30 тысяч правил). Компания Amnesty International подтвердила, что остающейся функциональности недостаточно для работы разрабатываемых дополнений для блокирования атак.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.