Вийшов черговий реліз Chrome 86 та стабільний випуск Chromium.

Основні зміни в Chrome 86:

  • захист від небезпечного надсилання форм введення на сторінках, завантажених по HTTPS, але надсилають дані по HTTP.
  • Блокування небезпечного завантаження (http) виконуваних файлів доповнено блокуванням небезпечного завантаження архівів (zip, iso тощо) та виведенням попереджень при небезпечному завантаженні документів (docx, pdf тощо). У наступному випуску очікується блокування документів та попередження для зображень, текстових та мультимедійних файлів. Блокування реалізовано, оскільки завантаження файлів без шифрування може використовуватися скоєння шкідливих дій шляхом заміни вмісту у процесі MITM-атак.
  • У контекстному меню за промовчанням показано опцію «Завжди показувати URL повністю», для включення якої раніше потрібна була зміна параметрів на сторінці about:flags. Повний URL також можна переглянути клацнувши двічі на адресному рядку. Нагадаємо, що починаючи з Chrome 76 за замовчуванням адреса стала показуватися без протоколу та піддомена www. У Chrome 79 було видалено налаштування повернення старої поведінки, але після невдоволення користувачів в Chrome 83 був доданий новий експериментальний прапор, що додає в контекстне меню пункт для відключення приховування і показу повного URL в будь-яких умовах.
    Для невеликого відсотка користувачів запущено експеримент за відображенням за замовчуванням в адресному рядку лише домену, без шляхів і параметрів запиту. Наприклад, замість "https://example.com/secure-google-sign-in/" буде показано "example.com". Доведення запропонованого режиму до всіх користувачів очікується в одному з наступних випусків. Для вимкнення зазначеної поведінки можна використовувати опцію «Завжди показувати URL повністю», а для перегляду всього URL можна клацнути на адресному рядку. В якості мотиву зміни вказується бажання захистити користувачів від фішингу, що маніпулює параметрами в URL - зловмисники користуються неуважністю користувачів для створення видимості відкриття іншого сайту та здійснення шахрайських дій (якщо для технічно грамотного користувача подібні заміни впадають в очі, то недосвідчені обивателі легко купуються маніпуляції).
  • Відновлено ініціативу щодо видалення підтримки FTP. У Chrome 86 FTP вимкнено за замовчуванням приблизно для 1% користувачів, а в Chrome 87 охоплення відключення буде збільшено до 50%, але підтримку можна буде повернути за допомогою прапора "-enable-ftp" або "-enable-features=FtpProtocol". У Chrome 88 підтримка FTP буде повністю вимкнена.
  • У версії для Android за аналогією з версією для настільних систем у менеджері паролів реалізовано перевірку збережених логінів та паролів на базі скомпрометованих облікових записів з виведенням попередження у разі виявлення проблем або спроби використання тривіальних паролів. Перевірка виконується за базою, що охоплює понад 4 мільярди скомпрометованих акаунтів, що фігурували в витоках баз користувача. Для збереження приватності застосовується звірка хеш-префікса на стороні користувача, а самі паролі та їх повні хеш не передаються у зовні.
  • У версію для Android також перенесено кнопку «Перевірка безпеки» (Safety check) та розширений режим захисту від небезпечних сайтів (Enhanced Safe Browsing). Кнопка «Safety check» показує зведення про можливі проблеми з безпекою, такі як використання компрометованих паролів, стан перевірки шкідливих сайтів (Safe Browsing), наявність невстановлених оновлень і виявлення шкідливих доповнень. Розширений режим захисту активує додаткові перевірки для захисту від фішингу, шкідливої ​​активності та інших загроз на Web, а також включає додатковий захист для облікового запису в Google та сервісів Google (Gmail, Drive тощо). Якщо у звичайному режимі Safe Browsing перевірки виконуються локально за періодично завантажуваною на систему клієнта БД, то Enhanced Safe Browsing інформація про сторінки та завантаження в режимі реального часу відправляється для перевірки на стороні Google, що дозволяє оперативно реагувати на загрози відразу після їх виявлення, не чекаючи, поки оновиться локальний чорний список.
  • Додано підтримку файлу-індикатора ".well-known/change-password", за допомогою якого власники сайтів можуть вказати адресу web-форми для зміни пароля. У разі виявлення компрометації облікових даних користувача Chrome тепер відразу запропонує користувачу форму зміни пароля, визначену на основі інформації з даного файлу.
  • Реалізовано виведення нового попередження "Safety Tip", що відображається при відкритті сайтів, домен яких дуже схожий на інший сайт і евристика показує, що велика ймовірність спуфінгу (наприклад, відкритий goog0le.com замість google.com).

    * Реалізована підтримка кешу переходу (Back-forward cache), що забезпечує миттєвий перехід при використанні кнопок «Назад» та «Вперед» або при навігації по сторінках поточного сайту, що переглянуті раніше. Кеш включається за допомогою chrome://flags/#back-forward-cache.

  • Оптимізація споживання ресурсів CPU вікнами поза межами видимості. Chrome перевіряє чи не перекривається вікно браузера іншими вікнами і виключає відображення пікселів в областях перекриття. Зазначена оптимізація була включена для невеликого відсотка користувачів у Chrome 84 та 85, а тепер активована повсюдно. У порівнянні з минулими випусками також усунуто несумісність із системами віртуалізації, через яку показувалися порожні білі сторінки.
  • Посилено урізання ресурсів для вкладок фону. Подібні вкладки тепер не можуть споживати більше 1% ресурсів CPU і можуть активуватися не частіше ніж один раз на хвилину. Після п'яти хвилин знаходження у фоні вкладки заморожуються, за винятком вкладок, у яких відтворюється мультимедійний вміст або ведеться запис.
  • Відновлено роботу з уніфікації HTTP-заголовка User-Agent. У новій версії для всіх користувачів активовано підтримку механізму User-Agent Client Hints, що розвивається як заміна User-Agent. Новий механізм передбачає вибіркову віддачу даних про конкретні параметри браузера та системи (версія, платформа тощо) тільки після запиту сервером і дає користувачам можливість вибірково надавати подібну інформацію власникам сайтів. При використанні User-Agent Client Hints ідентифікатор не передається за замовчуванням без явного запиту, що унеможливлює проведення пасивної ідентифікації (за замовчуванням вказується лише назва браузера).
    Змінено індикацію наявності оновлення та необхідність перезапуску браузера для його встановлення. Замість кольорової стрілки у полі аватара облікового запису тепер з'являється напис "Update".
  • Проведено роботу з перекладу браузера на застосування інклюзивної термінології. В іменах політик слова «whitelist» та «blacklist» замінені на «allowlist» та «blocklist» (вже додані політики продовжать працювати, але для них буде виводитись попередження про переведення в розряд застарілих). У коді та іменах файлів згадки "blacklist" замінені на "blocklist". Згадані користувачеві згадки «blacklist» та «whitelist» були замінені ще на початку 2019 року.
    Додано експериментальну можливість редагування збережених паролів, що активується за допомогою прапора «chrome://flags/#edit-passwords-in-settings».
  • Переведений у розряд стабільних та загальнодоступних API Native File System, що дозволяє створювати web-додатки, що взаємодіють із файлами в локальній ФС. Наприклад, новий API може бути затребуваний в інтегрованих середовищах розробки, редакторах тексту, зображень і відео, що запускаються в браузері. Для отримання можливості прямого запису та читання файлів або використання діалогів для відкриття та збереження файлів, а також для навігації за вмістом каталогів, програма запитує у користувача спеціальне підтвердження.
  • Доданий CSS-селектор ":focus-visible", який використовує ту ж евристику, що використовується браузером при ухваленні рішення про показ індикатора зміни фокусу (при переміщенні фокусу на кнопку клавіатурними комбінаціями індикатор з'являється, а при натисканні мишею - ні). Раніше доступний CSS-селектор "focus" завжди підсвічує фокус. Крім того, у налаштуваннях додана опція Quick Focus Highlight, при включенні якої поруч з активними елементами буде відображатися додатковий індикатор фокусу, який залишається видимим навіть якщо на сторінці через CSS відключені елементи стилю для візуального виділення фокусу.
  • У режимі Origin Trials (експериментальні можливості, що потребують окремої активації), додано кілька нових API. Origin Trial має на увазі можливість роботи із зазначеним API з додатків, завантажених з localhost або 127.0.0.1, або після проходження реєстрації та отримання спеціального токена, який діє обмежений час для конкретного сайту.
  • API WebHID для низькорівневого доступу до HID-пристроїв (Human interface device, клавіатури, миші, геймпади, сенсорні панелі), що дозволяє реалізувати логіку роботи з HID-пристроєм JavaScript для організації роботи з рідкісними HID-пристроями без наявності в системі специфічних драйверів. Перш за все, новий API націлений на надання підтримки геймпадів.
  • API Screen Information розширює можливості API Window Placement підтримкою конфігурацій з кількома екранами. На відміну від window.screen, новий API дозволяє маніпулювати розміщенням вікна в загальному екранному просторі багатомоніторних систем, не обмежуючись поточним екраном.
  • Мета-тег battery-savings, за допомогою якого сайт може інформувати браузер про необхідність активації режимів зниження енергоспоживання та оптимізації навантаження на CPU.
  • API COOP Reporting для інформування про потенційні порушення режимів ізоляції Cross-Origin-Embedder-Policy (COEP) та Cross-Origin-Opener-Policy (COOP) без застосування фактичних обмежень.
  • В API Credential Management запропоновано новий тип облікових даних PaymentCredential, що забезпечує додаткове підтвердження платіжної операції. Сторона, що перевіряє, наприклад, банк, має можливість згенерувати відкритий ключ PublicKeyCredential, який може бути запросений продавцем для додаткового безпечного підтвердження платежу.
  • В API PointerEvents для визначення нахилу стилуса* додана підтримка кутів висоти (кут між стилусом та екраном) та азимуту (кут між віссю X та проекцією стилуса на екран), замість кутів TiltX та TiltY (кути між площиною зі стилусу та однією з осей та площиною з осей Y та Z). Також додані функції перетворення між висотою/азимутом та TiltX/TiltY.
  • Змінено кодування пробілу в URL, при його обчисленні в обробниках протоколу — метод navigator.registerProtocolHandler() тепер замінює пробіли на %20 замість «+», що уніфікує поведінку з іншими браузерами, такими як Firefox.
  • У CSS додано псевдо-елемент "::marker", що дозволяє налаштувати колір, розмір, форму і тип чисел і точок для перерахувань у блоках і .
  • Додана підтримка HTTP-заголовка Document-Policy, що дозволяє встановити правила доступу до документів, схожі на механізм sandbox-ізоляції для iframe, але більш універсальний. Наприклад, через Document-Policy можна обмежити використання неякісних зображень, відключити повільні JavaScript API налаштувати правила завантаження iframe, зображень та скриптів, обмежити загальний розмір документа та трафік, заборонити методи, що призводять до перемальовування сторінки, вимкнути функцію Scroll-To-Text.
  • В елемент додано підтримку параметрів 'inline-grid', 'grid', 'inline-flex' і 'flex', що задаються через CSS-властивість 'display'.
  • Додано метод ParentNode.replaceChildren() для заміни всіх дочірніх елементів батьківського вузла на інший DOM-вузол. Раніше для заміни вузлів можна було використовувати комбінацію з методів node.removeChild() та node.append() або node.innerHTML та node.append().
  • Розширено спектр схем URL, допустимих для перевизначення за допомогою registerProtocolHandler(). До списку схем включені децентралізовані протоколи cabal, dat, did, dweb, ethereum, hyper, ipfs, ipns та ssb, що дозволяє визначати посилання на елементи незалежно від сайту чи шлюзу, що надає доступ до ресурсу.
  • В API Asynchronous Clipboard додана підтримка формату text/html для копіювання та вставки HTML через буфер обміну (під час запису та читання в буфер обміну виконується чищення небезпечних конструкцій HTML). Зміна, наприклад, дозволяє організувати в web-редакторах вставку та копіювання відформатованого тексту із зображеннями та посиланнями.
  • WebRTC додає можливість підключення власних обробників даних, що викликаються на стадіях кодування або декодування WebRTC MediaStreamTrack. Наприклад, цю можливість можна використовувати для додавання підтримки наскрізного шифрування даних, що передаються через проміжні сервери.
    У JavaScript-движку V8 на 75% прискорено реалізацію Number.prototype.toString. До асинхронних класів додано властивість .name з порожнім значенням. Видалено метод Atomics.wake, який свого часу був перейменований на Atomics.notify для відповідності специфікації ECMA-262. Відкрито код інструментарію fuzzing-тестування JS-Fuzzer.
  • У попередньому випуску початковому (baseline) компіляторі Liftoff для WebAssembly включена можливість використання векторних інструкцій SIMD для прискорення обчислень. Судячи з тестів, оптимізація дозволила прискорити проходження деяких тестів у 2.8 рази. Інша оптимізація дозволила значно прискорити виклик з WebAssembly імпортованих функцій JavaScript.
  • Розширені інструменти для веб-розробників: У панель Media додані відомості про програвачі, які застосовуються для відтворення відео на сторінці, включаючи дані про події, логи, значення властивостей та параметри декодування кадрів (наприклад, можна визначити причини втрати кадрів та проблем при взаємодії з JavaScript) .
  • У контекстному меню панелі Elements додано можливість створення скріншотів вибраного елемента (наприклад, можна створити скріншот змісту або таблиці).
  • У веб-консолі панель із попередженням про проблеми замінена на звичайне повідомлення, а проблеми із сторонніми Cookie приховані за замовчуванням у вкладці Issues та включаються спеціальним прапорцем.
  • У вкладці Rendering додано кнопку «Disable local fonts», що дозволяє симулювати відсутність локальних шрифтів, а у вкладці Sensors з'явилася можливість симулювати неактивність користувача (для додатків, що використовують API Idle Detection).
  • У панелі Application представлена ​​детальна інформація про кожен iframe, відкрите вікно та pop-up-и, включаючи дані про ізоляцію Cross-Origin за допомогою COEP та COOP.

Почалася заміна реалізації протоколу QUIC на варіант, що розвивається у специфікації IETF, замість Google-варіанту QUIC.
Окрім нововведень та виправлення помилок у новій версії усунено 35 вразливостей. Багато вразливостей виявлено в результаті автоматизованого тестування інструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer та AFL. Одна вразливість (CVE-2020-15967, звернення до звільненої області пам'яті код для взаємодії з Google Payments) позначена як критична, тобто. дозволяє обійти всі рівні захисту браузера та виконати код у системі за межами sandbox-оточення. У рамках програми виплати грошової винагороди за виявлення вразливостей для поточного релізу компанія Google виплатила 27 премій на суму 71500 доларів США (одна премія $15000, три премії $7500, п'ять премій $5000, дві $3000, одна $200 і дві премії $500. Розмір 13 винагород поки не визначено.

взято з Opennet.ru

Джерело: linux.org.ru

Додати коментар або відгук