L'azienda Google ha pubblicato il rilascio del browser web Chrome 118. È disponibile anche una versione stabile del progetto open source Chromium, che funge da base per Chrome. Il browser Chrome si distingue da Chromium per l'uso dei loghi Google, la presenza di un sistema di invio di notifiche in caso di crash, moduli per la riproduzione di contenuti video protetti da copyright (DRM), un sistema di aggiornamento automatico, l'attivazione permanente dell'isolamento Sandbox, la fornitura di chiavi per le Google API e la trasmissione di parametri RLZ durante la ricerca. Per coloro che necessitano di più tempo per l'aggiornamento, è mantenuta una versione Extended Stable, supportata per 8 settimane. Il prossimo rilascio di Chrome 119 è previsto per il 31 ottobre.
Principali cambiamenti in Chrome 118:
- È iniziata la preparazione per la cessazione del supporto ai cookie di terze parti in Chrome, che vengono impostati quando si accede a siti diversi da quelli del dominio della pagina corrente. Questi cookie vengono utilizzati per tracciare i movimenti dell'utente tra i siti nel codice delle reti pubblicitarie, nei widget dei social media e nei sistemi di web analytics. Le modifiche sono promosse nell'ambito dell'iniziativa Privacy Sandbox, mirata a trovare un compromesso tra la necessità degli utenti di mantenere la riservatezza e il desiderio delle reti pubblicitarie e dei siti di tracciare le preferenze dei visitatori.
In Chrome 118, gli strumenti per gli sviluppatori web forniscono un avviso quando vengono inviati cookie soggetti a future restrizioni. È stata inoltre aggiunta un'opzione della riga di comando «—test-third-party-cookie-phaseout» e un'impostazione «chrome://flags/#test-third-party-cookie-phaseout» per forzare l'attivazione del blocco a scopo di test. Il blocco effettivo dei cookie di terze parti inizierà nel primo trimestre del 2024 e durante il periodo di prova fino al terzo trimestre coprirà solo l'1% degli utenti di Chrome. Dopo il terzo trimestre del 2024, l'ambito del blocco sarà esteso al 100%.
Invece dei cookie di monitoraggio, si propone di utilizzare i seguenti API:
- FedCM (Federated Credential Management), consente di creare servizi di identificazione unificati, garantendo la privacy e funzionando senza cookie di terze parti.
- Private State Tokens, permette di differenziare gli utenti senza l'uso di identificatori intersito e di trasmettere informazioni sull'autenticazione dell'utente tra diversi contesti.
- Topics (critica) consente di identificare le categorie di interesse degli utenti, che possono essere utilizzate per raggruppare gli utenti con interessi simili senza identificare singoli utenti tramite cookie di tracciamento. Gli interessi vengono calcolati in base all'attività dell'utente nel browser e vengono salvati sul dispositivo dell'utente. Attraverso l'API Topics, la rete pubblicitaria può ottenere informazioni generali sugli interessi senza avere informazioni sull'attività specifica dell'utente.
- Protected Audience, soluzione per il retargeting e la valutazione del proprio pubblico (lavoro con utenti che hanno già visitato il sito in precedenza).
- Attribution Reporting, consente di valutare caratteristiche di efficacia della pubblicità come clic e conversione (acquisto sul sito dopo un clic).
- Storage Access API, può essere utilizzata per richiedere all'utente i permessi per accedere ai cookie, se per impostazione predefinita i cookie di terze parti sono bloccati.
- Per tutti gli utenti è attivato il supporto per il meccanismo ECH (Encrypted Client Hello), che continua lo sviluppo di ESNI (Encrypted Server Name Indication) e viene utilizzato per crittografare informazioni sui parametri delle sessioni TLS, come il nome di dominio richiesto. La principale differenza tra ECH ed ESNI è che in ECH, invece di crittografare a livello di singoli campi, viene crittografato completamente l'intero messaggio TLS ClientHello, il che consente di bloccare leak attraverso campi non coperti da ESNI, ad esempio il campo PSK (Pre-Shared Key). Per gestire l'attivazione di ECH è prevista l'impostazione "chrome://flags#encrypted-client-hello".
- Con l'attivazione della protezione estesa del browser (Safe Browsing > Enhanced protection) è possibile disattivare da remoto le estensioni dannose installate non dal catalogo ufficiale delle estensioni. La decisione di rimuovere viene presa sui server di Google sulla base di una verifica manuale o dopo l'attivazione del sistema automatico di rilevamento del codice dannoso.
- Con l'attivazione della protezione standard del browser (Safe Browsing > Standard protection) viene realizzata una verifica della sicurezza degli URL aperti in tempo reale, effettuata sulla base della trasmissione a servers Google di hash parziali degli URL aperti dall'utente. Per escludere l'associazione Indirizzi IP l'utente e all'hash; i dati vengono trasmessi tramite un proxy intermedio. In precedenza, la verifica avveniva caricando sul sistema dell'utente una copia locale della lista degli URL insicuri. Il nuovo schema consente di bloccare più rapidamente gli URL dannosi.
- È stata migliorata la grafica delle pagine visualizzate quando si tenta di aprire un sito riconosciuto come non sicuro durante la verifica tramite il meccanismo Safe Browsing.

- Nella telemetria inviata ai server di Google con l'attivazione della protezione estesa del browser (Safe Browsing > Enhanced protection), sono ora considerati gli accessi delle estensioni all'API chrome.tabs. I dati vengono raccolti per identificare attività dannose e violazioni delle regole nelle estensioni.
- Attivando la protezione avanzata del browser (Navigazione Sicura > Protezione avanzata) è supportata la scansione approfondita degli archivi ZIP e RAR crittografati sul lato Google (l'utente deve inserire la password di estrazione, dopodiché il contenuto viene inviato per la verifica ai server Google).
- È stato aggiunto un nuovo testo nel configuratore e nella guida per garantire la riservatezza che spiega i livelli di protezione di Navigazione Sicura, insieme a collegamenti agli articoli pertinenti con informazioni aggiuntive. Sono state semplificate le descrizioni della protezione standard, della disattivazione della protezione e degli avvisi di compromissione delle password.

- Nella sezione Quests (monitoraggio dei prezzi nei negozi online) della pagina della nuova scheda sono state aggiunte informazioni sulla disponibilità di sconti. L'indicatore degli sconti può anche apparire nella barra degli indirizzi quando si aprono pagine di prodotti dei negozi online monitorati dal servizio Google.
- In conformità con la specifica RFC-6265bis, è stato bloccato l'accesso a tutti i cookie contenenti caratteri di controllo impostati tramite JavaScript. In precedenza, i cookie con il carattere nullo, il ritorno a capo e il ritorno a capo venivano troncati al carattere problematico invece di essere bloccati, il che in alcune situazioni poteva essere utilizzato per azioni dannose. Per disabilitare questo nuovo comportamento, è possibile utilizzare l'opzione «--disable-features=BlockTruncatedCookies».
- È stato consentito l'accesso all'API WebUSB nei Service Worker registrati.
- È stata rimossa la necessità di attivare preventivamente da parte dell'utente la possibilità di visualizzare dialoghi per la richiesta e conferma dei pagamenti.
- La decodifica dei caratteri ASCII in forma di codici «%xx» è stata interrotta. Ad esempio, precedentemente «http://example.com/» veniva decodificato in «http://example.com/A» prima di essere scritto in url.href, mentre ora rimarrà «http://example.com/».
- È stata aggiunta la possibilità di disporre verticalmente il testo negli elementi delle web-form select, meter, progress, button, textarea e input. La posizione del testo nelle forme è definita utilizzando la proprietà CSS writing-mode, che per la visualizzazione verticale può assumere i valori vertical-rl o vertical-lr.
- Nella proprietà CSS «appearance» è stata interrotta la supporto per le parole chiave non standard: inner-spin-button, media-slider, media-sliderthumb, media-volume-slider, media-volume-sliderthumb, push-button, searchfield-cancel-button, slider-horizontal, sliderthumb-horizontal, sliderthumb-vertical e square-button. Per valutare la richiesta di queste parole chiave, non incluse nella specifica, sono state raccolte statistiche, secondo le quali sono state utilizzate solo nell'0.001% dei casi.
- È stata aggiunta la regola CSS @scope, che consente di legare gli stili CSS tenendo conto della prossimità della definizione dello stile agli elementi. La regola @scope può essere utilizzata per superare l'ordinaria disposizione degli stili basata sull'ordine di apparizione degli elementi o per modificare lo stile di un componente, senza toccare gli stili degli elementi contenuti al suo interno. Ad esempio, per i div annidati: <div class="»lightpink-theme»"> <a href="/it/»/#»">Io sono rosa chiaro!</a> <div class="»pink-theme»"> <a href="/it/»/#»">Rosa diverso!</a> </div> </div> tutto il contenuto sarà colorato di rosa chiaro a causa dell'azione su tutto il blocco di stile "lightpink-theme", specificato nel div genitore. Utilizzando @scope è possibile modificare l'ambito e ottenere che il div annidato riceva lo stile "pink-theme" sulla base della prossimità della definizione dello stile, piuttosto che dell'ordine di definizione nel codice: @scope (.pink-theme) { a { color: hotpink; } } @scope (.lightpink-theme){ a { color: lightpink; } }
- Aggiunta la supporto per la media query (@media) «scripting», che consente di verificare la disponibilità della funzionalità di esecuzione degli script (ad esempio, in CSS è possibile determinare se il supporto per JavaScript è abilitato).
- Aggiunta la supporto per la media query prefers-reduced-transparency, che consente di rilevare le modifiche nelle impostazioni del sistema responsabili della riduzione degli effetti di trasparenza o semitrasparenza (ad esempio, la modalità «Riduci trasparenza» in macOS, utilizzata per migliorare la leggibilità del testo).
- In CSS è stata aggiunta la supporto per i nuovi valori «float: inline-start», «float: inline-end», «clear: inline-start», «clear: inline-end», «resize: block», «resize: inline», che controllano il posizionamento logico degli elementi (per supportare lingue in cui la scrittura avviene non dall'alto in basso e da sinistra a destra, il posizionamento logico utilizza i concetti di inizio, fine e direzione del testo).
- Nella proprietà CSS «transform-box» è stata aggiunta la supporto per i valori stroke-box, content-box e border-box, che consentono di modificare il metodo di calcolo dell'area di riferimento per le operazioni di trasformazione, ad esempio, per implementare effetti grafici avanzati.
- È stata aggiunta la possibilità di impostare il focus sui riquadri di scorrimento durante la navigazione tramite la tastiera (ad esempio, è possibile impostare il focus sullo scorrimento premendo il tasto Tab e scorrere usando i tasti freccia della tastiera).
- Sono stati apportati miglioramenti agli strumenti per sviluppatori web. È stata ampliata la funzionalità del pannello Sources («Fonti»), in cui invece della sezione «Filesystem» è stata introdotta la scheda «Workspace», attraverso la quale è possibile sincronizzare le modifiche apportate ai file sorgente utilizzando gli strumenti per sviluppatori.
È stata fornita la possibilità di modificare l'ordine delle schede nel pannello Sources tramite il loro spostamento con il mouse in modalità drag&drop. È stato garantito il formattazione del codice JavaScript incorporato negli elementi script con i tipi module, importmap e speculationrules. È stata aggiunta l'evidenziazione della sintassi per gli script con i tipi importmap e speculationrules.

Nella scheda Stili del pannello Elementi è stata aggiunta una sezione separata per le proprietà personalizzate, che consente di definire le proprie proprietà CSS senza eseguire JavaScript. Nei risultati di ricerca è garantita la visualizzazione di tutte le corrispondenze nella riga, non solo della prima corrispondenza, utile per la ricerca in file JavaScript compressi per ridurre le dimensioni (cliccando sul risultato, il file si apre nell'editor e viene scorrimento verticalmente e orizzontalmente per mostrare la posizione trovata).

Oltre alle novità e alla correzione di bug, nella nuova versione sono state eliminate 20 vulnerabilità. Molte delle vulnerabilità sono state individuate mediante test automatizzati utilizzando strumenti come AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer e AFL. Tra le altre cose, nella nuova versione è stata risolta una vulnerabilità critica CVE-2023-5218, legata all'accesso alla memoria dopo la sua liberazione (Use after free) nel meccanismo di isolamento dei siti. Questa vulnerabilità consente di eludere tutti i livelli di protezione del browser e di eseguire codice sul sistema al di fuori dell'ambiente sandbox. Nell'ambito del programma di ricompensa per la scoperta di vulnerabilità per l'attuale rilascio, Google ha assegnato 14 premi per un totale di 30.500 dollari USA (un premio di $6000, due premi di $5000, due premi di $3000, un premio di $2000, sei premi di $1000 e un premio di $500). L'importo di una singola ricompensa non è ancora stato definito.
Fonte: opennet.ru




