Firma Google opublikowała wydanie przeglądarki internetowej Chrome 123. Jednocześnie dostępna jest stabilna wersja wolnego projektu Chromium, stanowiącego podstawę Chrome. Przeglądarka Chrome różni się od Chromium wykorzystaniem logo Google, systemem powiadamiania o awariach, modułami do odtwarzania treści chronionych przed kopiowaniem (DRM), automatycznym systemem aktualizacji, stałym włączeniem izolacji Sandbox, dostarczaniem kluczy do Google API oraz przesyłaniem parametrów RLZ przy wyszukiwaniu. Dla tych, którzy potrzebują więcej czasu na aktualizację, oddzielnie wspierana jest gałąź Extended Stable, która jest towarzyszona przez 8 tygodni. Kolejne wydanie Chrome 124 zaplanowano na 16 kwietnia.
Główne zmiany w Chrome 123:
- Na stronie wyświetlanej przy otwieraniu nowej karty dodano nową sekcję, w której wyświetlane są linki z kart, które zostały niedawno otwarte na innych urządzeniach powiązanych z jednym kontem Google.

- Dodano wsparcie dla kompresji treści za pomocą algorytmu Zstandard (zstd), oprócz wcześniej obsługiwanych algorytmów gzip, brotli i deflate.
- Usunięto zaimplementowany wolny kodek wideo Theora, stworzony przez Xiph.org Foundation na bazie kodeka VP3 i wspierany w Firefoxie i Chrome od 2009 roku, ale nie wspierany w Chrome na Androidzie i w przeglądarkach opartych na WebKit, takich jak Safari. Jako powód zaprzestania wsparcia Theora wskazuje się obawy, że w implementacji Theora, w której występuje wystarczająco skomplikowana logika analizy danych binarnych i dekodowania strumieni, mogą występować luki, podobne do niedawnych krytycznych problemów z kodowarką VP8. Z perspektywy deweloperów, ze względu na wzrastającą liczbę ataków 0-day na kodeki multimedialne, związane z zagrożeniem bezpieczeństwa, ryzyko przeważa nad poziomem popytu na kodek Theora, który jest prawie w ogóle nieużywany w praktyce, ale pozostaje istotnym celem dla potencjalnych ataków.
- Kontynuowane jest stopniowe zwiększanie odsetka użytkowników, dla których wyłączono obsługę zewnętrznych plików cookie ustawianych podczas odwiedzania stron różnych od domeny bieżącej strony. Pliki cookie takie są stosowane do śledzenia ruchów użytkownika między stronami w kodzie sieci reklamowych, widgetów mediów społecznościowych oraz systemów analityki internetowej. Zmiany są realizowane w ramach inicjatywy Privacy Sandbox, mającej na celu osiągnięcie kompromisu między potrzebą użytkowników do zachowania prywatności, a pragnieniem sieci reklamowych i stron internetowych śledzenia preferencji odwiedzających. Planuje się stopniowe rozszerzenie wyłączenia zewnętrznych plików cookie do 100% do trzeciego kwartału 2024 roku. W celu wyłączenia, nie czekając na zmiany zewnętrzne, przewidziano konfigurację "chrome://flags/#test-third-party-cookie-phaseout".
- Dla niewielkiego odsetka użytkowników w USA włączono wsparcie dla funkcji wykorzystujących uczenie maszynowe – trybu inteligentnej grupowania kart, generatora motywów oraz interaktywnego asystenta, o których wspomniano w zapowiedzi wydania Chrome 121. W systemach z centralnym zarządzaniem konfiguracją administrator może włączyć narzędzia AI na poziomie polityk, bez konieczności włączania trybu eksperymentalnego.
- W usłudze synchronizacji ustawień, historii i zakładek (Chrome Sync) zaprzestano wsparcia dla wydań starszych niż wersja Chrome 82.
- Po włączeniu rozszerzonej ochrony przeglądarki (Safe Browsing > Enhanced protection) wprowadzono przesyłanie do Google informacji o wydawaniu przez strony zapytań o rozszerzone uprawnienia (takie strony są sprawdzane w zewnętrznej bazie złośliwego oprogramowania, a w przypadku dopasowania użytkownikowi od razu wyświetlane jest ostrzeżenie). Włączono również przesyłanie danych telemetrycznych o odwołaniu przez użytkownika ostrzeżeń wyświetlanych przed otwarciem stron wpisanych na czarną listę Google.
- Google opublikował artykuł wyjaśniający metody wykorzystywane do sprawdzania bezpieczeństwa otwieranych przez użytkownika stron w bazie złośliwego oprogramowania, umieszczonej w zewnętrznej serwerze. W celu zachowania prywatności podczas sprawdzania otwieranych przez użytkownika adresów URL do Google przekazywane są niepełne hasze adresów URL, a jedynie prefiks z pierwszymi 4 bajtami hasza. Na serwerze Ten prefiks jest weryfikowany w bazie złośliwych stron, a w przypadku wykrycia dopasowania, lista pełnych hashy odpowiadających prefiksowi jest zwracana do przeglądarki użytkownika, której strona już wykonuje ostateczne porównanie z pełnym 32-bajtowym hashem URL. Aby uniknąć powiązania zapytania z adresem IP użytkownika, prefiks hash jest najpierw kierowany do pośredniego serwera proxy, który w swoim imieniu przekazuje zapytanie do serwera systemu Safe Browsing.

- Zrealizowano wyświetlanie ostrzeżeń w konsoli narzędzi dla deweloperów webowych, gdy strona wysyła zapytanie do wewnętrznej sieci (192.168.x.x, 10.x.x.x itd.), jeżeli takie zapytania zostały zrealizowane poza bezpiecznym kontekstem i nie przeszły wcześniejszej weryfikacji. Przed faktycznym wysłaniem zapytania zainicjowanego przez stronę do zasobu w wewnętrznej sieci, przeglądarka najpierw wyśle testowe zapytanie w celu sprawdzenia, czy serwer zwrócił nagłówek HTTP „Access-Control-Allow-Private-Network: true”, zezwalający na dostęp do sieci intranetowej. Jeżeli dostęp nie jest dozwolony, może to oznaczać próbę nieautoryzowanego dostępu do wewnętrznej usługi, co może świadczyć o próbie ataku za pośrednictwem przeglądarki na zasoby w lokalnej sieci (np. atakujący może wstawić w iframe zapytanie do interfejsu webowego domowego routera, typu „”). W wydaniu Chrome 130 ostrzeżenie planuje się zastąpić wyświetleniem błędu i zablokowaniem zapytań, które nie przeszły weryfikacji.
- W Chrome na Android i iOS dodano możliwość kontynuowania przeglądania stron, które wcześniej były otwierane na innych urządzeniach powiązanych z tym samym kontem w Google.
- W Chrome na Android zmieniono metodę przechowywania lokalnych haseł, które nie są synchronizowane z innymi urządzeniami. Wcześniej lokalne hasła były przechowywane w profilu Chrome, teraz będą przenoszone do magazynu haseł udostępnianego przez usługi Google Play, które już służy do przechowywania hasła do konta Google. W Chrome 123 nowy tryb przechowywania został wdrożony dla użytkowników bez lokalnych haseł, a w wersji Chrome 124 zastosowany zostanie do użytkowników z lokalnymi hasłami.
- Dodano API dla statycznego routingu ServiceWorkerów (Service Worker Static Routing), które umożliwia pominięcie wykonywania JavaScript i interceptację przez ServiceWorkery podczas żądania zasobów, spełniających określone warunki. Innymi słowy, API pozwala określić, jak należy ładować określone zasoby oraz wyłączyć wywołanie ServiceWorkera dla zasobów, które można pobrać z pamięci podręcznej lub załadować bezpośrednio. Jako kryteria do podjęcia decyzji mogą być używane wzorce URL, metody żądania, typy zawartości (document, embed, font, video itd.) oraz status wykonania („running”, „not-running”). Na przykład, aby wysłać żądanie post z danymi formularza webowego bez wywoływania ServiceWorkera, można wskazać: addEventListener('install', (event) => { event.addRoutes({ condition: { urlPattern: 'form/*', requestMethod: 'post' }, source: 'network' }); });
- W CSS dodano funkcję light-dark() do dostosowywania schematu kolorów do ustawień jasnego lub ciemnego trybu. W funkcji można podać dwie wartości, które będą wybierane w zależności od jasnego lub ciemnego trybu. Na przykład „background-color: light-dark(lime, green);”.
- Dodano API Long Animation Frames do diagnozowania reaktywności interfejsu strony oraz wykrywania wąskich gardeł podczas renderowania.
- Do zapytania medialnego „display-mode” dodano wsparcie dla wartości „picture-in-picture”, co umożliwia tworzenie reguł CSS, które będą stosowane tylko podczas wyświetlania aplikacji webowej w trybie „obraz w obrazie”. @media all and (display-mode: picture-in-picture) { body { margin: 0; } h1 { font-size: 0.8em; } }
- W właściwości CSS „align-content” zrealizowano możliwość pracy z kontenerami blokowymi i komórkami tabel. Na przykład „display: block”, „display: list-item”, „display: table-cell” mogą teraz być wyrównane za pomocą „align-content”.
- Dodano właściwość CSS „field-sizing”, która pozwala na uzależnienie rozmiaru elementów formularzy od ich zawartości, na przykład, w celu automatycznego zwiększenia rozmiaru pola tekstowego w miarę wprowadzania danych.
- W interfejsie JavaScript NavigationActivation dodano parametr navigation.activation, który odzwierciedla stan aktywacji dokumentu (na przykład, można określić, że dokument został przywrócony z pamięci podręcznej po naciśnięciu przycisków nawigacji „dalej” lub „wstecz”). Parametr ten może być używany do dostosowywania zawartości strony w zależności od tego, skąd użytkownik na nią trafił, na przykład może być wyświetlana inna animacja, jeśli użytkownik przyszedł z strony głównej.
- Wprowadzono usprawnienia w narzędziach dla programistów webowych.
Oprócz nowości i poprawek błędów w nowej wersji usunięto 12 podatności. Wiele z podatności zostało wykrytych w wyniku automatycznego testowania narzędziami AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer oraz AFL. Nie zidentyfikowano krytycznych problemów, które umożliwiałyby obejście wszystkich poziomów zabezpieczeń przeglądarki i wykonanie kodu w systemie poza środowiskiem sandbox. W ramach programu nagród za wykrywanie błędów związanych z bezpieczeństwem, Google przyznało 7 nagród o łącznej wartości 22 tysięcy dolarów (jedna nagroda w wysokości 10000 $, 4000 $, 3000 $ i 1000 $, oraz dwie nagrody po 2000 $). Kwota jednej nagrody nie została jeszcze określona.
Źródło: opennet.ru


