È stato rilasciato l'ennesimo aggiornamento di Chrome 86 e la versione stabile di Chromium.
Principali novità in Chrome 86:
- protezione contro l'invio non sicuro di moduli su pagine caricate tramite HTTPS, ma che inviano dati tramite HTTP.
- Il blocco del download non sicuro (http) di file eseguibili è stato ampliato per includere il blocco del download di archivi non sicuri (zip, iso, ecc.) e per mostrare avvisi durante il download non sicuro di documenti (docx, pdf, ecc.). Nel prossimo rilascio è prevista l'aggiunta del blocco dei documenti e l'emissione di avvisi per immagini, file di testo e multimediali. Il blocco è stato implementato poiché il download di file non crittografati può essere utilizzato per condurre azioni dannose tramite la sostituzione dei contenuti durante attacchi MITM.
- Nel menu contestuale, l'opzione predefinita è "Mostra sempre l'URL completo", che in precedenza richiedeva una modifica delle impostazioni nella pagina about:flags per essere attivata. È possibile visualizzare l'URL completo anche facendo doppio clic sulla barra degli indirizzi. Ricordiamo che a partire da Chrome 76, per impostazione predefinita, l'indirizzo viene mostrato senza il protocollo e il sottodominio www. In Chrome 79 è stata rimossa l'impostazione che riportava il comportamento precedente, ma dopo il malcontento degli utenti, in Chrome 83 è stata aggiunta una nuova opzione sperimentale nel menu contestuale per disattivare la mascheratura e mostrare l'URL completo in qualsiasi condizione.
- Rinnovata l'iniziativa per rimuovere il supporto FTP. In Chrome 86 FTP è disabilitato per impostazione predefinita per circa l'1% degli utenti, mentre in Chrome 87 l'estensione della disattivazione aumenterà al 50%, ma il supporto potrà essere ripristinato utilizzando il flag "—enable-ftp" o "—enable-features=FtpProtocol". In Chrome 88 il supporto FTP sarà completamente disabilitato.
- Nella versione per Android, analogamente alla versione per sistemi desktop, il gestore delle password implementa il controllo degli accessi e delle password salvate contro il database delle credenziali compromesse, emettendo un avviso in caso di problemi o tentativi di utilizzo di password banali. Il controllo viene effettuato su un database che comprende oltre 4 miliardi di account compromessi apparsi in fughe di dati degli utenti. Per garantire la privacy viene utilizzata una verifica del prefisso hash lato utente, e le stesse password e i loro hash completi non vengono trasferiti all'esterno.
- Nella versione per Android sono state portate anche il pulsante "Controllo della sicurezza" (Safety check) e la modalità di protezione avanzata contro i siti pericolosi (Enhanced Safe Browsing). Il pulsante "Safety check" mostra un riepilogo dei potenziali problemi di sicurezza, come l'uso di password compromesse, lo stato del controllo dei siti dannosi (Safe Browsing), la presenza di aggiornamenti non installati e l'individuazione di estensioni dannose. La modalità di protezione avanzata attiva controlli aggiuntivi per proteggere contro phishing, attività malevole e altre minacce sul web, includendo anche una protezione extra per l'account Google e i servizi Google (Gmail, Drive, ecc.). Se nella normale modalità Safe Browsing i controlli vengono eseguiti localmente su un database scaricato periodicamente sul sistema client, nella Enhanced Safe Browsing le informazioni sulle pagine e i download in tempo reale vengono inviate per il controllo da parte di Google, permettendo una risposta tempestiva alle minacce subito dopo la loro individuazione, senza attendere l'aggiornamento della lista nera locale.
- È stato aggiunto il supporto per il file indicatore ".well-known/change-password", con cui i proprietari dei siti possono specificare l'indirizzo del modulo web per cambiare la password. In caso di compromissione delle credenziali utente, Chrome ora suggerirà immediatamente all'utente un modulo per cambiare la password, definito sulla base delle informazioni contenute in questo file.
- È stata implementata una nuova avvertenza «Safety Tip», visualizzata all'apertura di siti i cui domini assomigliano molto a un altro sito e l'euristica indica un'alta probabilità di spoofing (ad esempio, viene aperto goog0le.com invece di google.com).
* È stata implementata la supporto della cache di retrocessione (Back-forward cache), che garantisce un passaggio istantaneo all'utilizzo dei pulsanti "Indietro" e "Avanti" o durante la navigazione tra le pagine precedentemente visitate del sito attuale. La cache può essere attivata tramite l'impostazione chrome://flags/#back-forward-cache.
- Ottimizzazione del consumo delle risorse CPU per le finestre al di fuori dell'area visibile. Chrome controlla se una finestra del browser è coperta da altre finestre ed esclude il rendering dei pixel nelle aree sovrapposte. Questa ottimizzazione è stata attivata per una piccola percentuale di utenti in Chrome 84 e 85, ed ora è attiva ovunque. Rispetto alle versioni precedenti, è stata anche risolta un'incompatibilità con i sistemi di virtualizzazione che mostrava pagine bianche vuote.
- Rafforzato il taglio delle risorse per le schede in background. Tali schede ora non possono consumare più dell'1% delle risorse CPU e possono essere attivate non più di una volta al minuto. Dopo cinque minuti di inattività in background, le schede si bloccano, ad eccezione delle schede in cui viene riprodotto contenuto multimediale o viene effettuata una registrazione.
- È stata ripresa l'attività per l'unificazione dell'intestazione HTTP User-Agent. Nella nuova versione è stata attivata per tutti gli utenti la supporto del meccanismo User-Agent Client Hints, sviluppato come sostituto di User-Agent. Il nuovo meccanismo implica la restituzione selettiva dei dati su specifici parametri del browser e del sistema (versione, piattaforma, ecc.) solo su richiesta del server, e consente agli utenti di fornire selettivamente tali informazioni ai proprietari dei siti. Con User-Agent Client Hints, l'identificatore non viene inviato per impostazione predefinita senza richiesta esplicita, rendendo impossibile l'identificazione passiva (per impostazione predefinita viene indicato solo il nome del browser).
Cambiata l'indicazione della disponibilità di aggiornamenti e la necessità di riavviare il browser per la loro installazione. Al posto della freccia colorata nel campo dell'avatar dell'account, ora appare la scritta "Update". - Sono stati effettuati progressi nella traduzione del browser per l'uso di terminologia inclusiva. Nei nomi delle politiche, le parole "whitelist" e "blacklist" sono state sostituite da "allowlist" e "blocklist" (le politiche già esistenti continueranno a funzionare, ma verrà emesso un avviso sulla loro retrocessione a categorie obsolete). Nel codice e nei nomi dei file, i riferimenti a "blacklist" sono stati sostituiti da "blocklist". I riferimenti visibili all'utente di "blacklist" e "whitelist" sono stati sostituiti già all'inizio del 2019.
Aggiunta un'opzione sperimentale per modificare le password salvate, attivabile tramite il flag "chrome://flags/#edit-passwords-in-settings". - Tradotto nella categoria delle API stabili e pubbliche, il Native File System API consente di creare applicazioni web che interagiscono con i file nel file system locale. Ad esempio, la nuova API potrebbe essere richiesta nelle ambienti di sviluppo integrati eseguiti nel browser, editor di testo, immagini e video. Per ottenere la possibilità di scrivere e leggere file direttamente o di utilizzare dialoghi per aprire e salvare file, oltre a navigare nel contenuto delle directory, l'applicazione richiede agli utenti una conferma speciale.
- Aggiunto il selettore CSS ":focus-visible", che utilizza la stessa euristica che il browser usa per decidere se mostrare l'indicatore di cambiamento di focus (quando si sposta il focus su un pulsante con combinazioni di tasti, l'indicatore appare, ma con il clic del mouse non appare). In precedenza, il selettore CSS ":focus" evidenziava sempre il focus. Inoltre, nelle impostazioni è stata aggiunta l'opzione "Quick Focus Highlight", attivandola verrà mostrato un indicatore di focus aggiuntivo accanto agli elementi attivi, che rimane visibile anche se gli stili CSS per l'evidenziazione visiva del focus sono disattivati nella pagina.
- Nella modalità Origin Trials (funzionalità sperimentali che richiedono un'attivazione separata) sono stati aggiunti diversi nuovi API. L'Origin Trial implica la possibilità di utilizzare l'API specificata da applicazioni caricate da localhost o 127.0.0.1, o dopo aver completato la registrazione e ottenuto un token speciale, valido per un tempo limitato per un sito web specifico.
- L'API WebHID fornisce accesso a basso livello ai dispositivi HID (Human Interface Devices, tastiere, mouse, gamepad, touchpad), consentendo di implementare la logica di interazione con i dispositivi HID in JavaScript per lavorare con dispositivi HID rari senza la necessità di driver specifici nel sistema. Prima di tutto, la nuova API è mirata a fornire supporto per i gamepad.
- L'API Screen Information amplia le funzionalità dell'API Window Placement supportando configurazioni con più schermi. A differenza di window.screen, la nuova API consente di manipolare la posizione delle finestre nello spazio dello schermo generale dei sistemi multi-monitor, senza limitarsi allo schermo corrente.
- Il meta-tag battery-savings, con il quale il sito può informare il browser della necessità di attivare modalità di risparmio energetico e ottimizzazione del carico sulla CPU.
- L'API COOP Reporting serve a segnalare potenziali violazioni delle modalità di isolamento della Cross-Origin-Embedder-Policy (COEP) e della Cross-Origin-Opener-Policy (COOP), senza applicare restrizioni effettive.
- Nell'API Credential Management è stata introdotta una nuova tipologia di credenziali, PaymentCredential, che offre una conferma aggiuntiva per le operazioni di pagamento. La parte verificatrice, ad esempio, una banca, ha la possibilità di generare una chiave pubblica PublicKeyCredential, che può essere richiesta dal venditore per una conferma di pagamento aggiuntiva e sicura.
- Nell'API PointerEvents è stata aggiunta la supporto per l'inclinazione dello stilo*, con angoli di elevazione (l'angolo tra lo stilo e lo schermo) e azimut (l'angolo tra l'asse X e la proiezione dello stilo sullo schermo), invece degli angoli TiltX e TiltY (gli angoli tra il piano dello stilo e uno degli assi e il piano degli assi Y e Z). Sono state anche aggiunte funzioni per la conversione tra elevazione/azimut e TiltX/TiltY.
- È stato modificato il modo di codificare gli spazi in URL: nei gestori di protocollo, il metodo navigator.registerProtocolHandler() ora sostituisce gli spazi con «» invece di «+», uniformando il comportamento con altri browser come Firefox.
- In CSS è stato aggiunto il pseudo-elemento "::marker", che consente di personalizzare il colore, la dimensione, la forma e il tipo di numeri e punti per le elenchi nei blocchi
- e
- .
- È stata aggiunta la supporto per l'intestazione HTTP Document-Policy, che consente di definire regole di accesso ai documenti, simili al meccanismo di isolamento sandbox per iframe, ma più universale. Ad esempio, tramite Document-Policy è possibile limitare l'uso di immagini di bassa qualità, disabilitare API JavaScript lente, impostare regole per il caricamento di iframe, immagini e script, limitare la dimensione totale del documento e del traffico, vietare i metodi che portano a un ridisegno della pagina, disabilitare la funzione Scroll-To-Text.
- Nel elemento
- È stato aggiunto il metodo ParentNode.replaceChildren() per sostituire tutti i nodi figli di un nodo genitore con un altro nodo DOM. In precedenza, per sostituire i nodi era possibile utilizzare una combinazione dei metodi node.removeChild() e node.append() o node.innerHTML e node.append().
- È stata ampliata la gamma di schemi URL consentiti per la sovrascrittura tramite registerProtocolHandler(). La lista degli schemi include protocolli decentralizzati come cabal, dat, did, dweb, ethereum, hyper, ipfs, ipns e ssb, permettendo di definire collegamenti a elementi indipendentemente dal sito o dal gateway che fornisce accesso alla risorsa.
- Nell'API Asynchronous Clipboard è stata aggiunta la supporto per il formato text/html per copiare e incollare HTML attraverso il clipboard (durante la scrittura e la lettura nel clipboard vengono rimossi costrutti HTML pericolosi). Questa modifica, ad esempio, consente di organizzare in editor web l'incollaggio e la copia di testo formattato con immagini e link.
- In WebRTC è stata aggiunta la possibilità di collegare i propri handler dei dati, attivati nelle fasi di codifica o decodifica di WebRTC MediaStreamTrack. Ad esempio, questa possibilità può essere utilizzata per aggiungere supporto per la crittografia end-to-end dei dati trasmessi attraverso server intermedi.
Nel motore JavaScript V8 è stata accelerata del 75% l'implementazione di Number.prototype.toString. Negli async class è stata aggiunta la proprietà .name con un valore vuoto. È stato rimosso il metodo Atomics.wake, che un tempo era stato rinominato in Atomics.notify per conformarsi alla specifica ECMA-262. È stato aperto il codice per gli strumenti di testing fuzzing denominati JS-Fuzzer. - Nel compilatore iniziale (baseline) Liftoff per WebAssembly è stata inclusa la possibilità di utilizzare istruzioni vettoriali SIMD per accelerare i calcoli. A giudicare dai test, l'ottimizzazione ha permesso di velocizzare il superamento di alcuni test di 2,8 volte. Un'altra ottimizzazione ha permesso di accelerare significativamente l'invocazione di funzioni JavaScript importate da WebAssembly.
- Sono stati ampliati gli strumenti per gli sviluppatori web: nel pannello Media sono state aggiunte informazioni sui lettori utilizzati per la riproduzione video in pagina, incluse informazioni sugli eventi, log, valori delle proprietà e parametri di decodifica dei frame (ad esempio, è possibile determinare le ragioni della perdita di frame e dei problemi di interazione da JavaScript).
- Nel menu contestuale del pannello Elements è stata aggiunta la possibilità di creare screenshot dell'elemento selezionato (ad esempio, è possibile creare uno screenshot di un sommario o di una tabella).
- Nel web console il pannello di avvisi sui problemi è stato sostituito con un messaggio normale, mentre i problemi con i cookie di terze parti sono nascosti per default nella scheda Issues e possono essere attivati mediante un flag speciale.
- Nella scheda Rendering è stata aggiunta il pulsante «Disabilita caratteri locali», che consente di simulare l'assenza di caratteri locali, e nella scheda Sensors è stata aggiunta la possibilità di simulare l'inattività dell'utente (per applicazioni che utilizzano l'API Idle Detection).
- Nel pannello Application sono fornite informazioni dettagliate su ogni iframe, finestra aperta e pop-up, incluse informazioni sull'isolamento Cross-Origin tramite COEP e COOP.
È iniziata la sostituzione dell'implementazione del protocollo QUIC con una versione sviluppata nella specifica IETF, invece della versione Google di QUIC.
Oltre alle novità e alla correzione di errori, nella nuova versione sono state risolte 35 vulnerabilità. Molte di queste vulnerabilità sono state rilevate grazie ai test automatizzati con strumenti come AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer e AFL. Una vulnerabilità (CVE-2020-15967, accesso a memoria liberata nel codice per interagire con Google Payments) è stata contrassegnata come critica, ovvero consente di bypassare tutti i livelli di protezione del browser e di eseguire codice nel sistema al di fuori dell'ambiente sandbox. Nell'ambito del programma di ricompense per la scoperta di vulnerabilità, per la versione attuale, Google ha elargito 27 premi per un totale di 71500 dollari USA (un premio di $15000, tre premi di $7500, cinque premi di $5000, due di $3000, uno di $200 e due premi di $500). L'importo di 13 ricompense non è ancora stato definito.
Prelevato dal Opennet.ru
Fonte: linux.org.ru
