Firma Google wydała nową wersję przeglądarki internetowej Chrome 118. Jednocześnie dostępna jest stabilna wersja wolnego projektu Chromium, który stanowi bazę Chrome. Przeglądarka Chrome różni się od Chromium używaniem logo Google, systemem powiadamiania w przypadku awarii, modułami do odtwarzania chronionych treści wideo (DRM), automatycznym systemem aktualizacji, stałym włączonym trybem Sandbox oraz dostarczaniem kluczy do Google API i przesyłaniem parametrów RLZ podczas wyszukiwania. Dla tych, którzy potrzebują więcej czasu na aktualizację, oddzielnie wspierana jest wersja Extended Stable, towarzysząca przez 8 tygodni. Następne wydanie Chrome 119 zaplanowane jest na 31 października.
Główne zmiany w Chrome 118:
- Rozpoczęto przygotowania do zakończenia w Chrome wsparcia dla zewnętrznych plików cookie, które są umieszczane podczas odwiedzania stron różniących się od domeny bieżącej strony. Takie pliki cookie są wykorzystywane do śledzenia przemieszczania się użytkownika pomiędzy stronami w kodzie sieci reklamowych, widgetach społecznościowych oraz systemach analityki webowej. Zmiany są wprowadzane w ramach inicjatywy Privacy Sandbox, która ma na celu osiągnięcie równowagi między potrzebą użytkowników zachowania prywatności a chęcią sieci reklamowych i stron do śledzenia preferencji odwiedzających.
W Chrome 118 w narzędziach dla programistów webowych zapewniono wyświetlanie ostrzeżenia przy wysyłaniu plików cookie, które będą podlegać przyszłym blokadom. Dodano również opcję wiersza poleceń „—test-third-party-cookie-phaseout” oraz ustawienie „chrome://flags/#test-third-party-cookie-phaseout” do wymuszenia włączenia blokady w celu przeprowadzenia testów. Faktyczna blokada zewnętrznych plików cookie rozpocznie się w pierwszym kwartale 2024 roku, a do trzeciego kwartału, w ramach okresu testowego, będzie obejmować tylko 1% użytkowników Chrome. Po trzecim kwartale 2024 roku zasięg blokady wzrośnie do 100%.
Zamiast śledzących plików cookie sugeruje się korzystanie z następujących API:
- FedCM (Zarządzanie Uwierzytelnieniem Federacyjnym), umożliwia tworzenie zintegrowanych usług identyfikacji, które zapewniają prywatność i działają bez zewnętrznych plików cookie.
- Private State Tokens, pozwala na rozróżnianie różnych użytkowników bez użycia identyfikatorów międzystronowych oraz przesyłanie informacji o autoryzacji użytkownika między różnymi kontekstami.
- Topics (tematy), umożliwia określenie kategorii zainteresowań użytkownika, które można wykorzystać do wydzielania grup użytkowników o podobnych zainteresowaniach bez identyfikacji poszczególnych użytkowników za pomocą śledzących plików cookie. Zainteresowania obliczane są na podstawie aktywności użytkownika w przeglądarce i są przechowywane na urządzeniu użytkownika. Dzięki API Topics sieć reklamowa może uzyskać ogólne informacje o poszczególnych zainteresowaniach bez posiadania informacji o konkretnej aktywności użytkownika.
- Chroniona Publiczność, rozwiązanie do retargetingu i oceny własnej publiczności (praca z użytkownikami, którzy wcześniej odwiedzili stronę).
- Zgłaszanie Atrybucji, pozwala oceniać takie cechy efektywności reklamy, jak kliknięcia i konwersje (zakupy na stronie po kliknięciu).
- API Dostępu do Pamięci, może być wykorzystywane do żądania od użytkownika uprawnień do uzyskania dostępu do pamięci Cookie, jeśli domyślnie zewnętrzne Cookie są blokowane.
- Wszyscy użytkownicy mają włączoną obsługę mechanizmu ECH (Encrypted Client Hello), który jest kontynuacją rozwoju ESNI (Encrypted Server Name Indication) i służy do szyfrowania informacji o parametrach sesji TLS, takich jak żądana nazwa domeny. Kluczowa różnica między ECH a ESNI polega na tym, że w ECH zamiast szyfrowania na poziomie poszczególnych pól całe wiadomości TLS ClientHello są szyfrowane, co pozwala zablokować wycieki przez pola, które nie są objęte ESNI, na przykład pole PSK (Pre-Shared Key). Do zarządzania włączeniem ECH przewidziano ustawienie „chrome://flags#encrypted-client-hello”.
- Przy włączonej rozszerzonej ochronie przeglądarki (Bezpieczne przeglądanie > Rozszerzona ochrona) wprowadzono możliwość zdalnego wyłączania złośliwych dodatków zainstalowanych nie z oficjalnego katalogu dodatków. Decyzja o usunięciu jest podejmowana na serwerach Google na podstawie ręcznej analizy lub po uruchomieniu automatycznego systemu wykrywania złośliwego kodu.
- Przy włączonej standardowej ochronie przeglądarki (Bezpieczne przeglądanie > Standardowa ochrona) w czasie rzeczywistym przeprowadzana jest weryfikacja bezpieczeństwa otwartych URL, realizowana na podstawie przesyłania na serwery Google częściowych skrótów hash otwartych przez użytkownika URL. W celu wykluczenia dopasowania adresy IP użytkownika i hasha; dane są przesyłane przez pośredni serwer proxy. Wcześniej weryfikacja była realizowana poprzez pobranie lokalnej kopii listy niebezpiecznych URL na system użytkownika. Nowy schemat pozwala na szybsze blokowanie złośliwych URL.
- Poprawiono wygląd stron wyświetlanych podczas próby otwarcia witryny uznanej za niebezpieczną w wyniku weryfikacji przez mechanizm Bezpiecznego przeglądania.

- W telemetrii przesyłanej na serwery Google przy włączonej rozszerzonej ochronie przeglądarki (Bezpieczne przeglądanie > Rozszerzona ochrona) uwzględniane są teraz odwołania dodatków do API chrome.tabs. Dane są zbierane w celu wykrywania złośliwej aktywności i naruszeń zasad w dodatkach.
- Przy włączonej rozszerzonej ochronie przeglądarki (Bezpieczne przeglądanie > Rozszerzona ochrona) zapewniono wsparcie dla głębokiego skanowania szyfrowanych archiwów ZIP i RAR po stronie Google (użytkownik jest proszony o hasło do rozpakowania, po czym zawartość jest przesyłana do weryfikacji na serwery Google).
- W konfiguratorze i przewodniku po ochronie prywatności dodano nowy tekst wyjaśniający istotę poziomów ochrony Safe Browsing oraz dodano linki do odpowiednich artykułów z dodatkowymi informacjami. Uproszczono opisy standardowej ochrony, wyłączenia ochrony oraz ostrzeżeń o naruszeniu haseł.

- Do sekcji Quests (śledzenie cen w internetowych sklepach) na stronie nowej zakładki dodano informacje o dostępności zniżek. Wskaźnik zniżek może również pojawiać się w pasku adresu podczas otwierania stron z produktami z internetowych sklepów monitorowanych przez usługę Google.
- Zgodnie ze specyfikacją RFC-6265bis zablokowano wszystkie ciastka (cookies) zawierające znaki kontrolne i ustawione przez JavaScript. Wcześniej ciastka z zerowym znakiem, powrotem karetki i nową linią były obcinane przy problematycznym znaku, a nie blokowane, co w niektórych sytuacjach mogło być wykorzystywane do złośliwych działań. Aby wyłączyć nowe zachowanie, można użyć opcji „—disable-features=BlockTruncatedCookies”.
- W zarejestrowanych dodatkach Service Worker-ów zezwolono na dostęp do API WebUSB.
- Usunięto konieczność wcześniejszej aktywacji przez użytkownika możliwości wyświetlania dialogów w celu zapytania i potwierdzenia płatności.
- Zakończono dekodowanie znaków ASCII w postaci kodów „%xx”. Na przykład wcześniej „http://example.com/” był dekodowany do „http://example.com/A” przed zapisaniem do url.href, a teraz pozostanie „http://example.com/”.
- Dodano możliwość pionowego umieszczania tekstu w elementach formularzy internetowych select, meter, progress, button, textarea i input. Pozycjonowanie tekstu w formularzach określa się za pomocą właściwości CSS writing-mode, która dla pionowego wyświetlania może przyjmować wartości vertical-rl lub vertical-lr.
- W właściwości CSS „appearance” zaprzestano wsparcia dla niestandardowych słów kluczowych: inner-spin-button, media-slider, media-sliderthumb, media-volume-slider, media-volume-sliderthumb, push-button, searchfield-cancel-button, slider-horizontal, sliderthumb-horizontal, sliderthumb-vertical i square-button. Aby ocenić popularność tych słów kluczowych, które nie znalazły się w specyfikacji, zebrano statystyki, zgodnie z którymi były stosowane w jedynie 0.001% przypadków.
- Dodano regułę CSS @scope, która wiąże style CSS z uwzględnieniem bliskości definicji stylu do elementów. Reguła @scope może być używana do ominięcia standardowego rozmieszczenia stylów na podstawie kolejności elementów lub do dostosowania stylu komponentu, nie wpływając na style elementów zagnieżdżonych w nim. Na przykład dla zagnieżdżonych div-ów: <div class="»lightpink-theme»"> <a href="/pl/»/#»">Jestem jasnoróżowy!</a> <div class="»pink-theme»"> <a href="/pl/»/#»">Inny róż!</a> </div> </div> cała zawartość zostanie pokolorowana na jasnoróżowo z powodu działania stylu „lightpink-theme” na cały blok, określonego w rodzicielskim divie. Używając @scope można zmienić zakres widoczności i osiągnąć zastosowanie dla zagnieżdżonego diva stylu „pink-theme” na podstawie bliskości definicji stylu, a nie kolejności definicji w kodzie: @scope (.pink-theme) { a { color: hotpink; } } @scope (.lightpink-theme){ a { color: lightpink; } }
- Dodano wsparcie dla zapytań mediów (@media) „scripting”, umożliwiającego sprawdzenie dostępności możliwości wykonywania skryptów (na przykład w CSS można określić, czy wsparcie JavaScript jest włączone).
- Dodano wsparcie dla zapytania mediów prefers-reduced-transparency, które pozwala na wykrycie zmian w systemowych ustawieniach dotyczących redukcji efektów przezroczystości lub półprzezroczystości (na przykład tryb „Reduce transparency” w macOS, stosowany w celu zwiększenia czytelności tekstu).
- W CSS dodano wsparcie dla nowych wartości „float: inline-start”, „float: inline-end”, „clear: inline-start”, „clear: inline-end”, „resize: block”, „resize: inline”, zarządzających logicznym pozycjonowaniem elementów (w przypadku języków, w których zapis odbywa się z dołu do góry i z prawej do lewej, logiczne pozycjonowanie korzysta z pojęć początku, końca i kierunku tekstu).
- W właściwości CSS „transform-box” dodano wsparcie dla wartości stroke-box, content-box i border-box, które pozwalają na zmianę metody obliczania referencyjnego obszaru dla operacji transformacji, na przykład w celu realizacji zaawansowanych efektów graficznych.
- Dodano możliwość ustawiania fokusu na blokach przewijania podczas nawigacji za pomocą klawiatury (na przykład, fokus na przewijanie można ustawić naciskając klawisz Tab i przesuwając przy pomocy klawiszy kierunkowych).
- Wprowadzono ulepszenia w narzędziach dla web developerów. Rozszerzono możliwości panelu Sources („Źródła”), w którym zamiast sekcji „Filesystem” zaproponowano zakładkę „Workspace”, przez którą można synchronizować zmiany wprowadzane w narzędziach dla deweloperów z plikami źródłowymi.
Umożliwiono zmianę porządku zakładek w panelu Sources przez ich przeciąganie myszą w trybie drag&drop. Zapewniono formatowanie kodu JavaScript wbudowanego w elementy script z typami module, importmap i speculationrules. Dodano podświetlanie składni dla skryptów o typie importmap i speculationrules.

W panelu Elements na zakładce Styles dodano osobną sekcję dla właściwości niestandardowych, umożliwiającą definiowanie własnych właściwości CSS bez potrzeby używania JavaScript. W wynikach wyszukiwania zapewniono wyświetlanie wszystkich dopasowań w linii, a nie tylko pierwszego, co jest wygodne podczas przeszukiwania plików JavaScript, które zostały zminimalizowane (po kliknięciu w wynik, plik otwierany jest w edytorze i przewija się w pionie i poziomie, aby pokazać znalezioną pozycję).

Oprócz nowych funkcji i poprawek błędów w nowej wersji usunięto 20 luk w zabezpieczeniach. Wiele z tych luk zostało zidentyfikowanych dzięki automatycznemu testowaniu narzędziami takimi jak AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer i AFL. W nowym wydaniu usunięto między innymi krytyczną lukę CVE-2023-5218, związaną z dostępem do pamięci po jej zwolnieniu (Use after free) w mechanizmie izolacji stron. Luka ta pozwala na obejście wszystkich poziomów ochrony przeglądarki i wykonanie kodu w systemie poza środowiskiem sandbox. W ramach programu nagród za wykrywanie luk w tym wydaniu firma Google wypłaciła 14 nagród na łączną kwotę 30,5 tysiąca dolarów amerykańskich (jedna nagroda $6000, dwie nagrody $5000, dwie nagrody $3000, jedna nagroda $2000, sześć nagród $1000 i jedna nagroda $500). Kwota jednej nagrody nie została jeszcze określona.
Źródło: opennet.ru




