Wydanie Chrome 90

Firma Google przedstawila wydanie przeglądarki internetowej Chrome 90. Równocześnie dostępna jest stabilna wersja wolnego projektu Chromium, który stanowi podstawę Chrome. Przeglądarka Chrome wyróżnia się używaniem logo Google, systemem powiadamiania w przypadku awarii, modułami do odtwarzania zabezpieczonej treści wideo (DRM), automatycznym instalowaniem aktualizacji oraz przekazywaniem parametrów RLZ podczas wyszukiwania. Następne wydanie Chrome 91 zaplanowano na 25 maja.

Główne zmiany w Chrome 90:

  • Dla wszystkich użytkowników włączono domyślne otwieranie stron za pomocą HTTPS podczas wpisywania nazw hostów w pasku adresu. Na przykład podczas wpisywania hosta example.com, domyślnie zostanie otwarta strona https://example.com, a jeśli podczas otwierania wystąpią problemy, nastąpi powrót do http://example.com. Aby zarządzać domyślnym użyciem „https://”, zaproponowano ustawienie „chrome://flags#omnibox-default-typed-navigations-to-https”.
  • Wprowadzono możliwość nadawania różnym oknom indywidualnych etykiet w celu ich wizualnego rozdzielenia na pasku zadań. Obsługa zmiany nazwy okna ułatwi organizację pracy przy użyciu oddzielnych okien przeglądarki do różnych zadań, takich jak otwieranie oddzielnych okien dla spraw zawodowych, zainteresowań osobistych, rozrywki czy materiałów do przeczytania. Nazwę zmienia się poprzez opcję „Dodaj nazwę okna” w kontekstowym menu, które pojawia się po kliknięciu prawym przyciskiem myszy na pustym obszarze w pasku kart. Po zmianie nazwy na pasku aplikacji zamiast nazwy strony z aktywnej karty wyświetlana jest wybrana nazwa, co może być przydatne przy otwieraniu tych samych stron w różnych oknach z przypisaniem do osobnych kont. Przypisanie jest zachowywane między sesjami, a po ponownym uruchomieniu okna zostaną one przywrócone z wybranymi nazwami.
    Wydanie Chrome 90
  • Dodano możliwość ukrywania „Listy czytania” (Reading List) bez potrzeby zmiany ustawień w „chrome://flags” („chrome://flags#read-later”). Aby ukryć, można teraz użyć opcji „Pokaż Listę czytania” w dolnej części menu kontekstowego, które pojawia się po kliknięciu prawym przyciskiem myszy na pasku zakładek. Przypominamy, że w poprzedniej wersji u części użytkowników po naciśnięciu gwiazdki w pasku adresu pojawiała się obok przycisku „Dodaj zakładkę” druga możliwość „Dodaj do listy czytania”, a w prawym rogu paska zakładek pojawia się menu „Lista czytania”, w którym wymienione są wszystkie wcześniej dodane strony. Po otwarciu strony z listy oznaczana jest jako przeczytana. Strony na liście mogą być również ręcznie oznaczane jako przeczytane lub nieprzeczytane lub usuwane z listy.
  • Dodano wsparcie dla segmentacji sieci w celu ochrony przed metodami śledzenia ruchu użytkownika między witrynami, opartymi na przechowywaniu identyfikatorów w obszarach, które nie są przeznaczone do trwałego przechowywania informacji („Supercookies”). Ponieważ zasoby w pamięci podręcznej są przechowywane w wspólnej przestrzeni nazw, niezależnie od domeny źródłowej, jedna witryna może zidentyfikować ładowanie zasobów z innej witryny poprzez sprawdzenie obecności tego zasobu w pamięci podręcznej. Ochrona opiera się na zastosowaniu segmentacji sieci (Network Partitioning), co polega na dodaniu do wspólnych pamięci podręcznych dodatkowego powiązania rekordów z domeny, z którego otwarta jest strona główna, co ogranicza zakres pamięci podręcznej dla skryptów śledzenia ruchu do tylko jednej witryny (skrypt z iframe nie będzie mógł sprawdzić, czy zasób był ładowany z innej witryny). Kosztem segmentacji jest zmniejszenie efektywności pamięci podręcznej, co prowadzi do niewielkiego wzrostu czasu ładowania strony (maksymalnie o 1.32%, ale dla 80% witryn o 0.09-0.75%).
  • Zaktualizowano czarną listę portów sieciowych, dla których blokowane jest wysyłanie żądań HTTP, HTTPS i FTP, w celu ochrony przed atakiem NAT slipstreaming, umożliwiającym po otwarciu specjalnie przygotowanej przez atakującego strony w przeglądarce nawiązanie połączenia sieciowego z serwery atakującego do dowolnego portu UDP lub TCP w systemie użytkownika, pomimo wykorzystania wewnętrznego zakresu adresów (192.168.x.x, 10.x.x.x). Dodano zakazane porty 554 (protokół RTSP) i 10080 (używany w Amanda backup i VMWare vCenter). Wcześniej zablokowano porty 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 i 6566.
  • Dodano początkowe wsparcie dla otwierania dokumentów PDF z formularzami XFA w przeglądarce.
  • Dla części użytkowników wprowadzono nową sekcję ustawień „Ustawienia Chrome > Prywatność i bezpieczeństwo > Prywatny sandbox”, która umożliwia zarządzanie parametrami API FLoC, mającego na celu określenie kategorii zainteresowań użytkownika bez identyfikacji indywidualnej i bez powiązania z historią odwiedzanych stron.
  • Zapewniono wyświetlanie bardziej zrozumiałego powiadomienia z listą dozwolonych działań, wyświetlanego w przypadku połączenia użytkownika z profilem, dla którego włączono zarządzanie centralne.
  • Interfejs zgłaszania uprawnień stał się mniej natarczywy. Żądania, których użytkownik prawdopodobnie nie zaakceptuje, są teraz automatycznie blokowane z odpowiednim wskaźnikiem w pasku adresu, dzięki któremu użytkownik może przejść do interfejsu zarządzania uprawnieniami dla każdej strony.
    Wydanie Chrome 90
  • Dodano wsparcie dla rozszerzeń Intel CET (Intel Control-flow Enforcement Technology) dla sprzętowej ochrony przed wykonywaniem exploitów opartych na technikach programowania powrotnego (ROP, Return-Oriented Programming).
  • Kontynuowano pracę nad wprowadzeniem inkluzywnej terminologii w przeglądarki. Plik „master_preferences” został zmieniony na „initial_preferences”, aby nie ranić uczuć użytkowników, którzy interpretują słowo master jako aluzję do niewolnictwa ich przodków. Aby zachować zgodność, wsparcie dla „master_preferences” przez pewien czas będzie nadal dostępne w przeglądarki. Wcześniej przeglądarka pozbyła się użycia słów „whitelist”, „blacklist” oraz „native”.
  • W wersji na Androidzie, włączając tryb oszczędzania danych „Lite”, wprowadzono obniżenie bitratu podczas ładowania wideo w przypadku połączeń za pomocą sieci operatorów komórkowych, co pozwoli zmniejszyć wydatki użytkowników, którzy mają taryfy z ograniczonym transferem. W trybie „Lite” zapewniono również kompresję obrazów pobieranych z publicznie dostępnych zasobów (nie wymagających uwierzytelnienia) przez HTTPS.
  • Dodano kodek wideo AV1, specjalnie zoptymalizowany do użycia w wideokonferencjach realizowanych na podstawie protokołu WebRTC. Zastosowanie AV1 w wideokonferencjach zwiększa efektywność kompresji i umożliwia transmisję na kanałach o przepustowości na poziomie 30 kbit/s.
  • W JavaScript w obiektach Array, String i TypedArrays wprowadzono metodę at(), która pozwala na korzystanie z relatywnej indykacji (jako indeks tablicy wskazuje się względną pozycję), w tym z negatywnymi wartościami odnoszącymi się do końca (na przykład „arr.at(-1)” zwróci ostatni element tablicy).
  • W JavaScript do wyrażeń regularnych dodano właściwość „.indices”, zawierającą tablicę z początkowymi i końcowymi pozycjami grup dopasowania. Właściwość jest wypełniana tylko przy wykonywaniu wyrażenia regularnego z flagą „/d”. const re = /(a)(b)/d; const m = re.exec(‘ab’); console.log(m.indices[0]); // 0 — wszystkie grupy dopasowania // → [0, 2] console.log(m.indices[1]); // 1 — pierwsza grupa dopasowania // → [0, 1] console.log(m.indices[2]); // 2 — druga grupa dopasowania // → [1, 2]
  • Przeprowadzono optymalizację wydajności właściwości „super” (na przykład super.x), dla których zastosowano cache inline. Wydajność korzystania z „super” jest teraz zbliżona do wydajności dostępu do zwykłych właściwości.
  • Znacznie przyspieszono wywołania funkcji WebAssembly z JavaScript dzięki zastosowaniu inline deployment. Wspomniana optymalizacja pozostaje obecnie eksperymentalna i wymaga uruchomienia z flagą „—turbo-inline-js-wasm-calls”.
  • Dodano API WebXR Depth Sensing, które pozwala określać odległość między obiektami w otoczeniu użytkownika a urządzeniem użytkownika, na przykład do tworzenia bardziej realistycznych aplikacji rozszerzonej rzeczywistości. Przypominamy, że API WebXR pozwala ujednolicić pracę z różnymi klasami urządzeń wirtualnej rzeczywistości, od stacjonarnych hełmów 3D po rozwiązania oparte na urządzeniach mobilnych.
  • Została ustabilizowana możliwość WebXR AR Lighting Estimation, która pozwala w sesjach WebXR dla rozszerzonej rzeczywistości określać parametry otaczającego oświetlenia, aby nadać modelom bardziej naturalny wygląd i bardziej harmonijną integrację z otoczeniem użytkownika.
  • W trybie Origin Trials (eksperymentalne funkcje, które wymagają osobnej aktywacji) dodano kilka nowych API, które są obecnie ograniczone do platformy Android. Origin Trial oznacza możliwość pracy z danym API z aplikacji ładowanych z localhost lub 127.0.0.1, lub po zarejestrowaniu się i uzyskaniu specjalnego tokena, który działa przez ograniczony czas dla konkretnej strony.
    • Metoda getCurrentBrowsingContextMedia(), która umożliwia zorganizowanie przechwytywania strumienia wideo MediaStream odzwierciedlającego zawartość bieżącej karty. W odróżnieniu od podobnej metody getDisplayMedia(), podczas wywoływania getCurrentBrowsingContextMedia() użytkownik widzi proste okno dialogowe do potwierdzenia lub zablokowania operacji przesyłania wideo z zawartością karty.
    • API Insertable Streams, które umożliwia manipulację surowymi (raw) strumieniami multimedialnymi przesyłanymi przez API MediaStreamTrack, takimi jak dane z kamery i mikrofonu, wynik przechwytywania ekranu lub dane pośrednie dekodowania kodem. Do przedstawiania surowych klatek wykorzystywane są interfejsy WebCodec, po czym powstaje strumień, podobny do tego, który generuje API WebRTC Insertable Streams na podstawie RTCPeerConnections. Z praktycznego punktu widzenia nowe API umożliwia realizację takich funkcji, jak zastosowanie metod uczenia maszynowego do identyfikacji lub adnotacji obiektów w czasie rzeczywistym lub dodawanie efektów, takich jak wycinanie tła przed kodowaniem lub po dekodowaniu kodem.
    • Możliwość pakowania zasobów w pakiety (Web Bundle) w celu bardziej efektywnego ładowania dużej liczby towarzyszących plików (style CSS, JavaScript, obrazy, iframe). Wśród wad istniejącego wsparcia pakietów dla plików JavaScript (webpack), które próbuje się usunąć w Web Bundle: w pamięci podręcznej HTTP może utkwić sam pakiet, ale nie jego składniki; kompilacja i wykonywanie może rozpocząć się dopiero po pełnym załadowaniu pakietu; dodatkowe zasoby, takie jak CSS i obrazy, muszą być kodowane w postaci ciągów JavaScript, co prowadzi do zwiększenia rozmiaru i wykonania kolejnego etapu analizy.
    • Wsparcie dla obsługi wyjątków w WebAssembly.
  • Stabilizowane API Declarative Shadow DOM do tworzenia nowych korzeni w Shadow DOM, na przykład aby oddzielić importowany zewnętrzny styl elementu i powiązaną z nim podgałąź DOM od głównego dokumentu. Proponowane deklaratywne API umożliwia oddzielenie gałęzi DOM tylko przy użyciu HTML, bez potrzeby pisania kodu w JavaScript.
  • W właściwości CSS aspect-ratio, która umożliwia jawne powiązanie współczynnika proporcji z dowolnym elementem (w celu automatycznego obliczenia brakującego rozmiaru przy podaniu tylko wysokości lub szerokości), wdrożono możliwość interpolacji wartości podczas animacji (płynne przejście od jednego współczynnika proporcji do innego).
  • Dodano możliwość odzwierciedlenia stanu własnych elementów HTML (custom element) w CSS za pomocą pseudoklasy ':state()'. Funkcjonalność zrealizowano na podobieństwo możliwości standardowych elementów HTML zmiany swojego stanu w zależności od interakcji z użytkownikiem.
  • W właściwości CSS 'appearance' pojawiło się wsparcie dla wartości 'auto', która domyślnie jest ustawiana dla i , a na platformie Android dodatkowo dla , , , i .
  • Właściwość CSS 'overflow' zyskała wsparcie dla wartości 'clip', przy ustawieniu której wychodząca poza granice bloku zawartość jest obcinana na granicy dopuszczalnego przepełnienia bloku bez możliwości przewijania. Wartość, określająca jak daleko zawartość może wychodzić poza faktyczną granicę bloku przed rozpoczęciem obcinania, jest określana przez nowe właściwości CSS 'overflow-clip-margin'. W porównaniu do 'overflow: hidden' użycie 'overflow: clip' pozwala osiągnąć wyższą wydajność.
    Wydanie Chrome 90Wydanie Chrome 90
  • Now the HTTP header Feature-Policy has been replaced by the new header Permissions-Policy for managing delegation of authority and enabling enhanced capabilities, which supports structured values in fields (for example, you can now specify 'Permissions-Policy: geolocation=()' instead of 'Feature-Policy: geolocation ‘none').
  • The protection against using Protocol Buffers for executing attacks caused by speculative execution in processors has been strengthened. This protection is implemented by adding the MIME type 'application/x-protobuffer' to the list of never sniffed MIME types, which is processed through the Cross-Origin-Read-Blocking mechanism. Previously, the MIME type 'application/x-protobuf' was already included in this list, but 'application/x-protobuffer' was overlooked.
  • The File System Access API now allows shifting the current file position beyond its end, filling the resulting gap with zeros during subsequent writes via the FileSystemWritableFileStream.write() call. This capability enables the creation of sparse files with gaps and significantly simplifies the organization of writing to files from streams with unordered data block arrivals (as practiced in BitTorrent).
  • A StaticRange constructor has been added, implementing lightweight Range types that do not require updates to all related objects each time the DOM tree is modified.
  • Wprowadzono możliwość określenia parametrów width i height dla elementów <source>, wskazanych wewnątrz elementu <picture>. Ta możliwość pozwala obliczyć współczynnik proporcji dla elementów <picture>, analogicznie do tego, jak to zrobiono dla <img>, <canvas> i <video>.
  • Non-standard support for RTP data channels (RTP Data Channels) has been removed from WebRTC, and it is recommended to use SCTP-based data channels instead.
  • The properties navigator.plugins and navigator.mimeTypes now always return empty values (the need for these properties has vanished since Flash support was discontinued).
  • A large number of minor improvements have been made to the web developer tools, and a new debugging tool for CSS flexbox has been added.
    Wydanie Chrome 90

W nowej wersji, oprócz wprowadzania innowacji i poprawek, naprawiono 37 luk w zabezpieczeniach. Wiele z tych luk wykryto w wyniku automatyzowanego testowania za pomocą narzędzi AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer i AFL. Nie zidentyfikowano krytycznych problemów, które mogłyby obejść wszystkie poziomy ochrony przeglądarki i umożliwić uruchomienie kodu w systemie poza środowiskiem sandbox. W ramach programu nagród pieniężnych za wykrywanie luk w zabezpieczeniach, firma Google wypłaciła 19 nagród na łączną kwotę 54 000 dolarów (jedna nagroda 20 000 USD, jedna nagroda 10 000 USD, dwie nagrody 5 000 USD, trzy nagrody 3 000 USD, jedna nagroda 2 000 USD, jedna nagroda 1 000 USD i cztery nagrody 500 USD). Wysokość 6 nagród nie została jeszcze określona.

Należy zauważyć, że wczoraj, po opublikowaniu poprawkowej wersji 89.0.4389.128, ale przed wydaniem Chrome 90, opublikowano kolejny exploit, który wykorzystał nową lukę 0-day, nie naprawioną w Chrome 89.0.4389.128. Na razie nie wiadomo, czy problem ten został usunięty w Chrome 90. Tak jak w pierwszym przypadku, exploit obejmuje tylko jedną lukę i nie zawiera kodu do obejścia izolacji sandbox (uruchomienie chrome z flagą „—no-sandbox” umożliwia otwarcie notatnika przy otwieraniu strony internetowej na platformie Windows). Luka związana z nowym exploit wykorzystuje technologię WebAssembly.

Źródło: opennet.ru

Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS - ProHoster