Google ha pubblicato la versione del browser web Chrome 146. È disponibile contemporaneamente una versione stabile del progetto open source Chromium, che funge da base per Chrome. Il browser Chrome si differenzia da Chromium per l'utilizzo dei loghi Google, la presenza di un sistema di invio notifiche in caso di crash, moduli per la riproduzione di contenuti video protetti da copyright (DRM), un sistema di aggiornamenti automatici, l'attivazione continua della Sandbox isolation, la fornitura di chiavi per le API di Google e la trasmissione di parametri RLZ durante la ricerca. Per coloro che necessitano di più tempo per gli aggiornamenti, è supportato un ramo Extended Stable, accompagnato da 8 settimane di supporto. Il prossimo rilascio di Chrome 147 è previsto per il 7 aprile.
Google ha anche annunciato la pubblicazione di versioni ufficiali di Chrome per i sistemi Linux basati sull'architettura ARM64. Le versioni Linux per ARM64 inizieranno a essere create nel secondo trimestre del 2026 e saranno disponibili in pacchetti deb e rpm. In precedenza, le versioni ufficiali di Chrome per Linux erano pubblicate solo per l'architettura x86_64, mentre per l'architettura ARM64 erano disponibili solo versioni di Chromium fornite da terze parti. La versione ufficiale di Chrome presenta supporto per il collegamento a un account Google, integrazione dei servizi Google, sincronizzazione dei dati tra dispositivi, installazione semplificata delle estensioni dal Chrome Web Store e possibilità di attivare una modalità di protezione avanzata.
Le principali modifiche in Chrome 146:
- Per alcuni utenti è stato attivato il meccanismo di intervento selettivo sulle autorizzazioni, che blocca l'accesso degli script JavaScript correlati alla pubblicità a funzionalità che influiscono sulla privacy, come l'accesso alle informazioni sulla posizione, microfono, clipboard, Bluetooth, USB, porta seriale e cattura dello schermo. L'idea è che se un utente concede a una pagina accesso a tali funzionalità, queste autorizzazioni non saranno applicate agli script di terze parti ospitati su quella pagina, caricati da altri siti (separatamente tramite tag iframe o direttamente tramite tag script).
- È stata modificata la struttura delle impostazioni legate alla sicurezza. Per semplificare, è stata offerta all'utente la possibilità di scegliere tra un livello di protezione standard e uno potenziato, consentendo di ottenere il livello di sicurezza desiderato senza dover comprendere dettagli e opzioni avanzate. Se viene selezionata la modalità potenziata, vengono inoltre eseguiti controlli sull'URL e sul contenuto. server Google fornisce avvisi per connessioni non protette e rallenta il funzionamento di siti web non familiari all'utente per evitare attacchi. Se lo desidera, l'utente può tornare al vecchio schema di configurazione separata di ogni impostazione. È stata proposta un'opzione per gestire l'attivazione del nuovo design delle impostazioni di sicurezza: «chrome://flags/#bundled-security-settings».
- È proseguito lo sviluppo della modalità AI, che consente di interagire con un agente AI dalla barra degli indirizzi o dalla pagina visualizzata all'apertura di una nuova scheda. La modalità AI consente di porre domande complesse in linguaggio naturale e ricevere risposte basate sull'aggregazione delle informazioni dalle pagine più pertinenti sull'argomento. Se necessario, l'utente può richiedere chiarimenti con domande aggiuntive. La modalità consente anche di porre domande sul contenuto della pagina direttamente dalla barra degli indirizzi. In Chrome 146 è stata realizzata la possibilità di utilizzare file da Google Drive come contesto per l'agente AI.
- Nella modalità di completamento automatico, è stata introdotta la possibilità di utilizzare tipi di dati aggiuntivi, disponibili in precedenza solo attivando la modalità di completamento automatico avanzato.
- È iniziata l'attivazione graduale per gli utenti della protezione contro l'accesso al sistema locale durante l'interazione con siti pubblici. Gli accessi dai siti alla rete locale (intranet o indirizzi interni) o all'interfaccia loopback (127.0.0.0/8) richiederanno la conferma dell'operazione da parte dell'utente. Le azioni protette includono tentativi di caricamento risorse, richieste fetch() e inserimenti iframe. La protezione non si applica ancora alle connessioni tramite WebSockets, WebTransport e WebRTC, ma sarà aggiunta per queste nei prossimi rilasci. indirizzi IP una rete locale (intranet o indirizzi interni) o all'interfaccia loopback (127.0.0.0/8) richiederà la conferma dell'operazione da parte dell'utente. Le misure di protezione riguardano i tentativi di caricamento delle risorse, le richieste fetch() e gli iframe. La protezione non si applica ancora alle connessioni tramite WebSockets, WebTransport e WebRTC, ma sarà aggiunta per queste nel prossimo rilascio.
L'accesso alle risorse interne è sfruttato dagli aggressori per identificare indirettamente e realizzare attacchi CSRF su router, punti di accesso, stampanti, interfacce web aziendali e altri dispositivi e servizi che accettano richieste solo dalla rete locale. È stata proposta la configurazione LocalNetworkAccessIpAddressSpaceOverrides per gestire l'inclusione delle sottoreti nella categoria interna o pubblica, mentre la configurazione LocalNetworkAccessPermissionsPolicyDefaultEnabled consente di autorizzare automaticamente l'accesso per iframe secondari in base ai permessi dell'iframe genitore.
- Sono state aggiunte le proprietà CSS 'animation-trigger' e 'trigger-scope' per gestire le animazioni in base alla posizione di scorrimento della pagina. Ad esempio, è possibile avviare, fermare o riavviare un'animazione al raggiungimento di una determinata posizione di scorrimento, utilizzando solo CSS dichiarativo senza ricorrere al codice JavaScript.
- È stata implementata la registrazione degli elementi personalizzati per separare lo spazio dei nomi degli HTML personalizzati, il che può essere necessario quando si utilizzano più elementi HTML personalizzati con lo stesso nome nella stessa pagina. Nel caso in cui siano presenti più librerie sulla pagina che definiscono un elemento con lo stesso nome, tramite l'oggetto JavaScript CustomElementRegistry è possibile associare gli elementi di ciascuna libreria a parti specifiche della gerarchia DOM. Ad esempio, se due librerie definiscono diversi elementi con lo stesso nome , in una parte della pagina si può utilizzare l'elemento della prima libreria, mentre in un'altra parte si utilizza quello della seconda.
- È stato aggiunto l'API Sanitizer, utile per pulire i dati in entrata e rimuovere i tag HTML che potrebbero essere utilizzati per attacchi XSS. L'API fornisce metodi per manipolare l'HTML e rimuovere contenuti da elementi HTML che influenzano il rendering e l'esecuzione. Per un inserimento sicuro di contenuti HTML è stato proposto il metodo element.setHTML(), simile a element.innerHTML ma protetto contro lo scripting intersiti (XSS). Per un'analisi sicura dell'HTML è stato implementato il metodo document.parseHTML(). const unsanitizedString = "abc alert(1)"> def"; const sanitizer1 = new Sanitizer({ elements: ["div", "p", "button", "script"], }); const target = document.getElementById("target"); target.setHTML(unsanitizedString, { sanitizer: sanitizer1 });
- Nell'elemento 'meta' è stato implementato un parametro denominato 'text-scale' (ad esempio, ), che consente la scalabilità automatica delle dimensioni del carattere sulla pagina in base alle impostazioni del browser e del sistema operativo, se sulla pagina vengono utilizzate unità di misura relative (rem e em).
- Nell'API WebGPU è stata aggiunta una modalità di compatibilità opzionale, che fornisce un sottoinsieme di funzionalità in grado di funzionare su sistemi con API grafiche obsolete, come OpenGL e Direct3D11.
- In JavaScript è stata aggiunta la possibilità di combinare più iteratori in uno utilizzando il metodo Iterator.concat().
- In modalità 'Origin trials' è stato implementato l'API WebNN, che consente di utilizzare i servizi offerti dal sistema operativo per l'apprendimento automatico e le relative capacità hardware.
- Nella modalità 'Origin trials' è stato realizzato l'API CPU Performance per ottenere informazioni sulle prestazioni e le caratteristiche del processore (numero di core, tipo, architettura, modello, frequenza, ecc.).
- Nella modalità 'Origin trials' è stato aggiunto l'attributo 'focusgroup', che consente di utilizzare i tasti direzionali anziché il tasto Tab per spostarsi tra pulsanti o altri elementi collegati al cambio di focus.
- Sono stati apportati miglioramenti agli strumenti per sviluppatori web. Nella console web è stata garantita la conservazione dei risultati delle modifiche ai comandi durante la navigazione nella cronologia delle operazioni. Nel pannello Elements è stata realizzata la visualizzazione degli stili CSS aggiunti programmaticamente al Shadow DOM tramite un nodo separato '#adopted-style-sheets' nell'albero DOM, analogamente alla visualizzazione e modifica degli stili definiti tramite il tag .
Oltre alle novità e correzioni di bug, nella nuova versione sono state risolte 29 vulnerabilità. Molte delle vulnerabilità sono state scoperte tramite test automatizzati utilizzando strumenti come AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer e AFL. Una delle problematiche (overflow del buffer in WebML) è stata classificata come critica, il che implica che la vulnerabilità consente di bypassare tutti i livelli di protezione del browser ed eseguire codice nel sistema al di fuori dell'ambiente sandbox. Nell'ambito del programma di ricompensa per la scoperta delle vulnerabilità per la versione corrente, Google ha assegnato 29 premi e ha erogato 211.000 dollari, stabilendo un record di pagamenti all'interno di un singolo rilascio (due premi da $43.000, uno da $36.000, $33.000, $11.000 e $7.000, due premi da $10.000 e $3.000, e quattro premi da $2.000 e $1.000). L'importo di 12 premi rimane ancora da determinare.
Fonte: opennet.ru
