Firma Google opublikowała wydanie przeglądarki internetowej Chrome 142. Jednocześnie dostępna jest stabilna wersja otwartego projektu Chromium, będącego podstawą Chrome. Przeglądarka Chrome różni się od Chromium używaniem logo Google, posiadaniem systemu powiadomień w przypadku awarii, modułami do odtwarzania chronionych treści wideo (DRM), systemem automatycznych aktualizacji, ciągłym włączaniem izolacji Sandbox, dostarczaniem kluczy do Google API oraz przesyłaniem parametrów RLZ podczas wyszukiwania. Dla tych, którzy potrzebują więcej czasu na aktualizację, osobno wspierana jest gałąź Extended Stable, towarzysząca 8 tygodniom wsparcia. Następne wydanie Chrome 143 zaplanowane jest na 2 grudnia.
Główne zmiany w Chrome 142:
- Wprowadzono ochronę przed dostępem do lokalnego systemu przy interakcji z publicznymi witrynami. Przy próbach z witryny w sieci publicznej lub wewnętrznej (intranet) do adresów IP lokalnego systemu lub interfejsu loopback (127.0.0.0/8) przeglądarka będzie wyświetlać użytkownikowi dialog z prośbą o potwierdzenie operacji. Działania ochrony obejmują próby ładowania zasobów, żądania fetch() oraz wstawki iframe. Ochrona na razie nie jest stosowana do połączeń przez WebSockets, WebTransport i WebRTC, ale zostanie dodana do tych technologii później.
Dostęp do wewnętrznych zasobów jest wykorzystywany przez przestępców do przeprowadzania ataków CSRF na routery, punkty dostępu, drukarki, korporacyjne interfejsy webowe i inne urządzenia oraz usługi, które akceptują żądania tylko z lokalnej sieci. Ponadto skanowanie wewnętrznych zasobów może być używane do pośredniej identyfikacji lub zbierania informacji o lokalnej sieci.
- Proponowany jest jednolity uproszczony interfejs do powiązania z kontem Google i synchronizacji danych, takich jak zapisane hasła i zakładki. Synchronizacja jest zintegrowana z logowaniem do konta i nie jest przedstawiana jako osobna funkcjonalność w ustawieniach. Użytkownicy mogą połączyć Chrome z kontem Google i używać go do przechowywania haseł, zakładek, historii odwiedzin i kart. Możliwość ta jest na razie aktywna dla części użytkowników, a jej zasięg będzie stopniowo zwiększany.
- Wprowadzono nowy model izolacji procesów — „Origin Isolation”, w którym każde źródło treści (origin — połączenie protokołu, domeny i portu, na przykład, "https://foo.example.com"), izoluje się w osobnym procesie renderowania. Ponieważ zwiększenie poziomu izolacji może prowadzić do wyższego zużycia pamięci i wzrostu obciążenia CPU, nowy tryb izolacji włącza się tylko na systemach z więcej niż 4 GB RAM. Na słabszym sprzęcie będzie nadal stosowane stare podejście do izolacji, w którym w osobnym procesie izolowane są wszystkie różne źródła treści powiązane z jedną witryną (na przykład foo.example.com i bar.example.com).
- Na systemach z Windows i macOS, w których nie jest stosowane centralne zarządzanie Chrome, zautomatyzowane jest wyłączanie przymusowo zainstalowanych dodatków przeglądarki, w których wykryto nieistotne naruszenia zasad katalogu Chrome Web Store. Do nieistotnych naruszeń zaliczają się potencjalne luki, narzucanie dodatku bez wiedzy użytkownika, manipulacje danymi metadanych, naruszenia zasad dotyczących danych użytkowników i wprowadzanie w błąd co do funkcjonalności. Użytkownik może w razie potrzeby przywrócić wyłączony dodatek.
- W wersji na Android, na podobieństwo wersji dla systemów desktopowych, wprowadzono wyświetlanie ostrzeżeń o oszukańczych stronach, wykrywanych przez dużą model językowy na podstawie analizy treści. Wykorzystanie AI stosowane jest w trybie rozszerzonej ochrony przeglądarki (Enhanced Safe Browsing). Model AI działa po stronie klienta, ale w przypadku wykrycia podejrzeń dotyczących wątpliwej treści, przeprowadzana jest dodatkowa weryfikacja na serwerach Google.
- W realizacji protokołu DTLS (Datagram Transport Layer Security, odpowiednik TLS dla UDP), stosowanego w połączeniach WebRTC, włączono wykorzystanie algorytmów postkwantowego szyfrowania.
- Wprowadzono zapis statusu aktywacji, wystawianego w momencie aktywności użytkownika na stronie, po przejściu na inną stronę w tym samym obszarze. Zachowanie aktywacji ułatwi rozwój wielostronicowych aplikacji webowych i rozwiąże takie problemy jak ustawienie fokusu wprowadzania podczas wyświetlania wirtualnej klawiatury przez stronę.
- W CSS dodano pseudo-klasy ":target-before" i ":target-after" do określenia poprzednich i następnych znaczników w odniesieniu do bieżącej pozycji przewijania (":target-current").
- W kontenerach stylów („@container”) i funkcji „if()” dozwolone jest użycie składni zakresów (Range Syntax) określonej w specyfikacji Media Queries Level 4, co pozwala na użycie standardowych operatorów matematycznych porównania oraz logicznych operatorów do definiowania zakresów wartości. Na przykład teraz można wskazać „@container style(—inner-padding > 1em)” oraz „background-color: if(style(attr(data-columns, type) > 2): lightblue; else: white);”
- Elementy „<button>” oraz „<a>” dodały wsparcie dla atrybutu „interestfor”, za pomocą którego można zorganizować wywołanie działań, na przykład wyświetlenie okna pop-up w sytuacjach, gdy użytkownik wykazuje zainteresowanie elementem. Przejawami zainteresowania, które przeglądarka uznaje, są takie sytuacje, jak najechanie i przytrzymanie wskaźnika na elemencie, naciśnięcie klawiszy skrótów lub przytrzymanie dotyku na ekranie dotykowym. Kiedy wykaże zainteresowanie elementem z atrybutem „interestfor”, przeglądarka generuje zdarzenie InterestEvent.
- Wprowadzono ulepszenia w narzędziach dla programistów webowych. W prawym górnym rogu dodano przycisk do szybkiego uruchamiania asystenta AI. Element menu kontekstowego „Ask AI” został przemianowany na „Debug with AI” i rozszerzony o możliwość dokonywania natychmiastowych akcji w zależności od kontekstu. W konsoli webowej i panelu z kodem asystent AI Gemini teraz może generować rekomendacje z kodem.

W narzędziach dla programistów webowych zapewniono integrację z usługą GDP (Google Developer Program). Programista może teraz połączyć się ze swoim profilem w GDP bezpośrednio z Chrome DevTools i otrzymywać bonusy za wykonanie określonych zadań w tym interfejsie.

Oprócz nowych funkcji i poprawek błędów w nowej wersji usunięto 20 luk w zabezpieczeniach. Wiele z luk zostało wykrytych w wyniku automatyzowanego testowania narzędziami AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer i AFL. Nie zidentyfikowano krytycznych problemów, które umożliwiają ominięcie wszystkich poziomów zabezpieczeń przeglądarki i wykonanie kodu w systemie poza środowiskiem sandbox. W ramach programu nagród za wykrywanie luk w bezpieczeństwie dla bieżącego wydania firma Google ustanowiła 20 nagród o łącznej wartości 130 tysięcy dolarów USA (dwie nagrody po 50 tysięcy dolarów, jedna nagroda w wysokości 10 tysięcy dolarów oraz trzy nagrody po 3 tysiące dolarów, dwie nagrody po 2 tysiące dolarów i trzy nagrody po 1 tysiąc dolarów). Wartość 8 nagród nie została na razie określona.
Dodatkowo można zauważyć, że w silniku Blink zidentyfikowano niepoprawioną jeszcze lukę, która prowadzi do awarii i zawieszenia przeglądarki podczas wykonywania określonego kodu JavaScript. Luka ta wynika z problemów architektonicznych w silniku renderującym, związanych z brakiem ograniczeń dotyczących intensywności operacji aktualizacji właściwości „document.title”. Brak ograniczeń pozwala na użycie „document.title” do wprowadzania w DOM dziesiątek milionów zmian na sekundę, co po kilku sekundach prowadzi do zawieszenia interfejsu przez zablokowanie głównego wątku oraz znaczące zużycie pamięci, a po 15-60 sekundach przeglądarka kończy działanie współbieżnie.
Źródło: opennet.ru


