|
Компания Google опубликовала релиз web-браузера Chrome 146. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей RLZ-параметров при поиске. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 147 запланирован на 7 апреля.
Отдельно компания Google анонсировала публикацию официальных сборок Chrome для Linux-систем на базе архитектуры ARM64. Linux-сборки для ARM64 начнут формироваться во втором квартале 2026 года и будут доступны в пакетах deb и rpm. Ранее официальные сборки Chrome для Linux публиковались только для архитектуры x86_64, а для архитектуры ARM64 были доступны только сторонние сборки Chromium, предлагаемые дистрибутивами. Официальная версия Chrome отличается поддержкой подключения к учётной записи в Google, интеграцией сервисов Google, синхронизацией данных между устройствами, упрощённой установкой дополнений из каталога Chrome Web Store и возможностью включения расширенного режима защиты.
Основные изменения в Chrome 146:
- Для части пользователей включён механизм выборочного ограничения полномочий (Selective permission intervention), который блокирует доступ связанных с показом рекламы JavaScript-скриптов к возможностям, влияющим на конфиденциальность, таким как доступ к информации о местоположении, микрофону, буферу обмена, Bluetooth, USB, последовательному порту и захвату экрана. Идея в том, что если пользователь предоставил странице доступ к подобным возможностям, то эти разрешения не будут применяться для размещённых на этой странице сторонних скриптов, загружаемых с других сайтов (обособленно через тег iframe или напрямую через тег script).
- Изменена структура настроек, связанных с обеспечением безопасности. Для упрощения пользователю предоставлена возможность выбора между стандартным и усиленным уровнем защиты, что позволяет получить желаемый уровень безопасности без необходимости разбираться в деталях и расширенных опциях. При выборе усиленного режима дополнительно выполняется проверка URL и содержимого на серверах Google, выводятся предупреждения для незащищённых соединений и замедляется работа нетипичных для пользователя сайтов для блокирования атак. При желании пользователь может вернуться к старой схеме раздельного конфигурирования каждой настройки. Для управления включением нового оформления настроек безопасности предложен параметр
"chrome://flags/#bundled-security-settings".
- Продолжено развитие AI-режима, позволяющего взаимодействовать с AI-агентом из адресной строки или со страницы, показываемой при открытии новой вкладки. AI-режим даёт возможность задавать сложные вопросы на естественном языке и получать ответы на основе агрегирования информации из наиболее релевантных страниц на заданную тему. При необходимости пользователь может уточнять информацию наводящими вопросами. Режим также позволяет задавать вопросы о содержимом страницы прямо из адресной строки. В Chrome 146 реализована возможность использования файлов из хранилища Google Drive в качестве контекста для AI-агента.
- В режиме автоматического заполнения полей предоставлена возможность использования дополнительных типов данных, которые ранее были доступны только при включении режима расширенного автозаполнения (Enhanced autofill).
- Началось постепенное включение у пользователей защиты от обращения к локальной системе при взаимодействии с публичными сайтами. Обращения с сайтов к IP-адресам локальной сети (интранет или внутренние адреса) или loopback-интерфейсу (127.0.0.0/8) потребует подтверждения операции у пользователя. Под действия защиты попадают попытки загрузки ресурсов, запросы fetch() и iframe-вставки. Защита пока не применяется для соединений через WebSockets, WebTransport и WebRTC, но будет добавлена для них в следующем выпуске.
Обращение к внутренним ресурсам используются злоумышленниками для косвенной идентификации и осуществления CSRF-атак на маршрутизаторы, точки доступа, принтеры, корпоративные web-интерфейсы и другие устройства и сервисы, принимающие запросы только из локальной сети. Для управления попаданием подсетей в категорию внутренних или публичных предложена настройка LocalNetworkAccessIpAddressSpaceOverrides, а для автоматического разрешения доступа для дочерних iframe на основании полномочий родительского iframe-а добавлена настройка
LocalNetworkAccessPermissionsPolicyDefaultEnabled.
- Добавлены CSS-свойства "animation-trigger" и "trigger-scope" для управления анимацией на основе позиции прокрутки страницы. Например, можно запускать, останавливать или перезапускать анимацию при достижении определённой позиции прокрутки, обходясь только декларативным CSS без использования кода на JavaScript.
- Реализована поддержка реестра пользовательских элементов для разделения области видимости пользовательских HTML-элементов, что может потребоваться при использовании на одной странице нескольких разных пользовательских HTML-элементов, имеющих одно и то же имя. В случае использования на странице нескольких библиотек, определяющих элемент с одинаковым именем, при помощи JavaScript-объекта CustomElementRegistry элементы каждой библиотеки можно закрепить за определёнными частями иерархии DOM. Например, если две библиотеки определяют разные элементы с одинаковым именем <my-button>, то в одной части страницы можно использовать элемент <my-button> из первой библиотеки, а на другой - из второй.
- Добавлен API Sanitizer, который может быть полезен для чистки поступающих извне данных и вырезания из них HTML-тегов, которые могут использоваться для совершения XSS-атак. API предоставляет методы для манипуляции HTML и вырезания из содержимого HTML-элементов, влияющих на отображение и исполнение. Для безопасной вставки HTML-содержимого предложен метод element.setHTML(), похожий на element.innerHTML, но защищающий от межсайтового скриптинга (XSS). Для безопасного разбора HTML реализован метод document.parseHTML().
const unsanitizedString = "abc <script>alert(1)<" + "/script> def";
const sanitizer1 = new Sanitizer({
elements: ["div", "p", "button", "script"],
});
const target = document.getElementById("target");
target.setHTML(unsanitizedString, { sanitizer: sanitizer1 });
- В элементе "meta" реализован параметр с именем "text-scale" (например, <meta name="text-scale" content="scale">), включающий автоматическое масштабирование размера шрифта на странице в соответствии с настройками браузера и операционной системы, если на странице используются относительные единицы измерения (rem и em).
- В API WebGPU добавлен опциональный режим совместимости, предоставляющий подмножество функций, способных работать на системах с устаревшими графическими API, такими как OpenGL и Direct3D11.
- В JavaScript добавлена возможность объединять несколько итераторов в один с помощью метода Iterator.concat().
- В режиме "Origin trials" реализован API WebNN, позволяющий использовать предоставляемые операционной системой сервисы для машинного обучения и связанные с этим аппаратные возможности.
- В режиме "Origin trials" реализован API CPU Performance для получения информации об уровне производительности и характеристиках процессора (число ядер, тип, архитектура, модель, частота и т.п.).
- В режиме "Origin trials" добавлен атрибут "focusgroup", позволяющий вместо табуляции использовать клавиши управления курсором для перемещения между кнопками или другими элементами, связанными с переключением фокуса.
- Внесены улучшения в инструменты для web-разработчиков. В web-консоли обеспечено сохранение результатов редактирования команд при навигации по истории операций. В панели Elements реализовано отображение CSS-стилей, добавленных программно к Shadow DOM, через отдельный узел "#adopted-style-sheets" в дереве DOM, по аналогии с просмотром и редактированием стилей, определённых через тег <style>.
Кроме нововведений и исправления ошибок в новой версии устранено 29 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Одной из проблем (переполнение буфера в WebML) присвоен критический уровень опасности, подразумевающий, что уязвимость позволяет обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google учредила 29 премий и выплатила 211 тысяч долларов США, что стало рекордом по размеру выплат в рамках одного релиза (две премии $43000, по одной премии в $36000,
$33000, $11000 и $7000, по две премии в $10000 и $3000, по 4 премии в $2000 и $1000). Размер 12 вознаграждений пока не определён.
|