Chrome versione 90

Google ha annunciato l'uscita del browser web Chrome 90. Allo stesso tempo è disponibile una versione stabile del progetto gratuito Chromium, che funge da base per Chrome. Il browser Chrome si distingue per l'utilizzo dei loghi di Google, la presenza di un sistema per l'invio di notifiche in caso di crash, moduli per la riproduzione di contenuti video protetti (DRM), un sistema per l'installazione automatica degli aggiornamenti e la trasmissione dei parametri RLZ durante la ricerca. La prossima release di Chrome 91 è prevista per il 25 maggio.

Modifiche principali in Chrome 90:

  • Tutti gli utenti sono abilitati ad aprire siti tramite HTTPS per impostazione predefinita quando digitano i nomi host nella barra degli indirizzi. Ad esempio, quando inserisci l'host example.com, il sito https://example.com verrà aperto per impostazione predefinita e, se si verificano problemi durante l'apertura, verrà ripristinato http://example.com. Per controllare l'uso del valore predefinito "https://", viene proposta l'impostazione "chrome://flags#omnibox-default-typed-navigations-to-https".
  • Ora è possibile assegnare etichette diverse alle finestre per separarle visivamente nel pannello del desktop. Il supporto per la modifica del nome della finestra semplificherà l'organizzazione del lavoro quando si utilizzano finestre del browser separate per attività diverse, ad esempio quando si aprono finestre separate per attività lavorative, interessi personali, intrattenimento, materiali differiti, ecc. Il nome viene modificato tramite la voce "Aggiungi titolo finestra" nel menu contestuale che appare quando si fa clic con il tasto destro su un'area vuota nella barra delle schede. Dopo aver modificato il nome nel pannello dell'applicazione, al posto del nome del sito dalla scheda attiva, viene visualizzato il nome selezionato, il che può essere utile quando si aprono gli stessi siti in finestre diverse collegate ad account separati. L'associazione viene mantenuta tra le sessioni e dopo un riavvio le finestre verranno ripristinate con i nomi selezionati.
    Chrome versione 90
  • Aggiunta la possibilità di nascondere la “Lista di lettura” senza dover modificare le impostazioni in “chrome://flags” (“chrome://flags#read-later”). Per nasconderlo, ora puoi utilizzare l'opzione "Mostra elenco di lettura" nella parte inferiore del menu contestuale visualizzato quando fai clic con il pulsante destro del mouse sulla barra dei segnalibri. Ricordiamo che nell'ultima versione, quando alcuni utenti fanno clic sull'asterisco nella barra degli indirizzi, oltre al pulsante "Aggiungi segnalibro", appare un secondo pulsante "Aggiungi alla lista di lettura", e nell'angolo destro del pannello dei segnalibri viene visualizzato il menu “Elenco di lettura”, che elenca tutte le pagine precedentemente aggiunte all'elenco. Quando apri una pagina dall'elenco, viene contrassegnata come letta. Le pagine nell'elenco possono anche essere contrassegnate manualmente come lette o non lette oppure rimosse dall'elenco.
  • Aggiunto supporto per la segmentazione della rete per proteggere dai metodi di tracciamento dei movimenti degli utenti tra siti basati sulla memorizzazione di identificatori in aree non destinate alla memorizzazione permanente di informazioni ("Supercookie"). Poiché le risorse memorizzate nella cache vengono archiviate in uno spazio dei nomi comune, indipendentemente dal dominio di origine, un sito può determinare che un altro sito sta caricando risorse controllando se tale risorsa è nella cache. La protezione si basa sull'uso della segmentazione della rete (Network Partitioning), la cui essenza è quella di aggiungere alle cache condivise un ulteriore collegamento dei record al dominio da cui viene aperta la pagina principale, che limita la copertura della cache solo per gli script di tracciamento del movimento al sito corrente (uno script da un iframe non sarà in grado di verificare se la risorsa è stata scaricata da un altro sito). Il prezzo della segmentazione è una diminuzione dell'efficienza della memorizzazione nella cache, che porta a un leggero aumento del tempo di caricamento della pagina (massimo dell'1.32%, ma per l'80% dei siti dello 0.09-0.75%).
  • La lista nera delle porte di rete per le quali è bloccato l'invio di richieste HTTP, HTTPS e FTP è stata arricchita per proteggersi dagli attacchi NAT slipstreaming, che consente, quando si apre in un browser una pagina web appositamente predisposta dall'aggressore, di stabilire una rete connessione dal server dell'aggressore a qualsiasi porta UDP o TCP sul sistema dell'utente, nonostante l'utilizzo dell'intervallo di indirizzi interno (192.168.xx, 10.xxx). Aggiunti 554 (protocollo RTSP) e 10080 (utilizzato nel backup di Amanda e VMWare vCenter) all'elenco delle porte vietate. In precedenza le porte 69, 137, 161, 554, 1719, 1720, 1723, 5060, 5061 e 6566 erano già bloccate.
  • Aggiunto supporto iniziale per l'apertura di documenti PDF con moduli XFA nel browser.
  • Per alcuni utenti è stata attivata una nuova sezione di impostazioni “Impostazioni Chrome > Privacy e sicurezza > Privacy sandbox” che consente di gestire i parametri dell'API FLoC, volti a determinare la categoria di interessi dell'utente senza identificazione individuale e senza riferimento a la cronologia delle visite a siti specifici.
  • Una notifica più chiara con un elenco di azioni consentite viene ora visualizzata quando un utente si connette a un profilo per il quale è abilitata la gestione centralizzata.
  • Resa l'interfaccia di richiesta dei permessi meno invadente. Le richieste che probabilmente l'utente disapprove vengono ora bloccate automaticamente con un indicatore corrispondente visualizzato nella barra degli indirizzi, con il quale l'utente può accedere all'interfaccia per la gestione delle autorizzazioni in base al sito.
    Chrome versione 90
  • È incluso il supporto per le estensioni Intel CET (Intel Control-flow Enforcement Technology) per la protezione dell'hardware contro gli exploit creati utilizzando tecniche di programmazione orientata al ritorno (ROP, Return-Oriented Programming).
  • Il lavoro continua per far sì che il browser utilizzi una terminologia inclusiva. Il file "master_preferences" è stato rinominato "initial_preferences" per evitare di ferire i sentimenti degli utenti che percepiscono la parola "master" come un suggerimento sulla precedente schiavitù dei loro antenati. Per mantenere la compatibilità, il supporto per “master_preferences” rimarrà nel browser per qualche tempo. In precedenza il browser aveva già eliminato l’uso delle parole “whitelist”, “blacklist” e “nativo”.
  • Nella versione Android, quando è abilitata la modalità di risparmio del traffico “Lite”, il bitrate viene ridotto durante il download di video quando si è connessi tramite le reti degli operatori di telefonia mobile, il che ridurrà i costi per gli utenti che hanno abilitato le tariffe basate sul traffico. La modalità "Lite" fornisce anche la compressione delle immagini richieste da risorse disponibili pubblicamente (che non richiedono autenticazione) tramite HTTPS.
  • Aggiunto codificatore del formato video AV1, appositamente ottimizzato per l'utilizzo in videoconferenze basate sul protocollo WebRTC. L'utilizzo di AV1 nelle videoconferenze consente di aumentare l'efficienza di compressione e fornire la possibilità di trasmettere su canali con una larghezza di banda di 30 kbit/sec.
  • In JavaScript, gli oggetti Array, String e TypedArrays implementano il metodo at(), che consente di utilizzare l'indicizzazione relativa (una posizione relativa viene specificata come indice dell'array), inclusa la specificazione di valori negativi rispetto alla fine (ad esempio , "arr.at(-1)" restituirà l'ultimo elemento dell'array).
  • JavaScript ha aggiunto la proprietà ".indices" per le espressioni regolari, che contiene un array con le posizioni iniziale e finale di gruppi di corrispondenze. La proprietà viene riempita solo quando si esegue l'espressione regolare con il flag "/d". const re = /(a)(b)/d; const m = re.exec('ab'); console.log(m.indices[0]); // 0 — tutti i gruppi di corrispondenza // → [0, 2] console.log(m.indices[1]); // 1 è il primo gruppo di corrispondenze // → [0, 1] console.log(m.indices[2]); // 2 - secondo gruppo di partite // → [1, 2]
  • Sono state ottimizzate le prestazioni delle proprietà “super” (ad esempio super.x) per le quali è abilitata la cache inline. Le prestazioni dell'utilizzo di "super" sono ora vicine alle prestazioni dell'accesso alle proprietà normali.
  • La chiamata delle funzioni WebAssembly da JavaScript è stata notevolmente accelerata grazie all'uso della distribuzione in linea. Questa ottimizzazione rimane sperimentale per ora e richiede l'esecuzione con il flag "-turbo-inline-js-wasm-calls".
  • Aggiunta l'API WebXR Depth Sensing, che consente di determinare la distanza tra gli oggetti nell'ambiente dell'utente e il dispositivo dell'utente, ad esempio, per creare applicazioni di realtà aumentata più realistiche. Ricordiamo che l'API WebXR consente di unificare il lavoro con varie classi di dispositivi di realtà virtuale, dai caschi 3D fissi alle soluzioni basate su dispositivi mobili.
  • La funzione WebXR AR Lighting Estimation è stata stabilizzata, consentendo alle sessioni WebXR AR di determinare i parametri di illuminazione ambientale per conferire ai modelli un aspetto più naturale e una migliore integrazione con l'ambiente dell'utente.
  • La modalità Prove Origin (funzionalità sperimentali che richiedono un'attivazione separata) aggiunge diverse nuove API attualmente limitate alla piattaforma Android. La prova di origine implica la possibilità di lavorare con l'API specificata da applicazioni scaricate da localhost o 127.0.0.1 o dopo la registrazione e la ricezione di un token speciale valido per un periodo limitato per un sito specifico.
    • Il metodo getCurrentBrowsingContextMedia(), che rende possibile catturare un flusso video MediaStream che riflette il contenuto della scheda corrente. A differenza del metodo simile getDisplayMedia(), quando si chiama getCurrentBrowsingContextMedia(), all'utente viene presentata una semplice finestra di dialogo per confermare o bloccare l'operazione di trasferimento del video con il contenuto della scheda.
    • API Insertable Streams, che consente di manipolare i flussi multimediali non elaborati trasmessi tramite l'API MediaStreamTrack, come dati della fotocamera e del microfono, risultati di acquisizione dello schermo o dati di decodifica del codec intermedio. Le interfacce WebCodec vengono utilizzate per presentare frame non elaborati e viene generato un flusso simile a quello generato dall'API WebRTC Insertable Streams in base a RTCPeerConnections. Dal punto di vista pratico, la nuova API consente funzionalità come l'applicazione di tecniche di apprendimento automatico per identificare o annotare oggetti in tempo reale o l'aggiunta di effetti come il ritaglio dello sfondo prima della codifica o dopo la decodifica tramite un codec.
    • La possibilità di raggruppare le risorse in pacchetti (Web Bundle) per organizzare un caricamento più efficiente di un gran numero di file di accompagnamento (stili CSS, JavaScript, immagini, iframe). Tra le carenze del supporto esistente per i pacchetti per file JavaScript (webpack), che il Web Bundle sta cercando di eliminare: il pacchetto stesso, ma non i suoi componenti, può finire nella cache HTTP; la compilazione e l'esecuzione possono iniziare solo dopo che il pacchetto è stato completamente scaricato; Risorse aggiuntive come CSS e immagini devono essere codificate sotto forma di stringhe JavaScript, il che aumenta le dimensioni e richiede un ulteriore passaggio di analisi.
    • Supporto per la gestione delle eccezioni in WebAssembly.
  • Stabilizzata l'API dichiarativa Shadow DOM per creare nuovi rami radice nello Shadow DOM, ad esempio per separare uno stile di elemento importato di terze parti e il relativo sottoramo DOM associato dal documento principale. L'API dichiarativa proposta consente di utilizzare solo HTML per sbloccare i rami DOM senza la necessità di scrivere codice JavaScript.
  • La proprietà CSS proporzioni, che consente di associare esplicitamente le proporzioni a qualsiasi elemento (per calcolare automaticamente la dimensione mancante quando si specifica solo l'altezza o la larghezza), implementa la possibilità di interpolare i valori durante l'animazione (transizione graduale da un proporzioni a un altro).
  • Aggiunta la possibilità di riflettere lo stato degli elementi HTML personalizzati nei CSS attraverso la pseudo-classe “:state()”. La funzionalità è implementata per analogia con la capacità degli elementi HTML standard di modificare il proprio stato a seconda dell'interazione dell'utente.
  • La proprietà CSS "appearance" ora supporta il valore "auto", impostato per impostazione predefinita per E e sulla piattaforma Android inoltre per , , , E .
  • Il supporto per il valore "clip" è stato aggiunto alla proprietà CSS "overflow", quando impostato, il contenuto che si estende oltre il blocco viene ritagliato al limite dell'overflow consentito del blocco senza possibilità di scorrimento. Il valore che determina quanto il contenuto può estendersi oltre il bordo effettivo del riquadro prima che inizi il ritaglio è impostato tramite la nuova proprietà CSS "overflow-clip-margin". Rispetto a "overflow: hidden", l'utilizzo di "overflow: clip" consente prestazioni migliori.
    Chrome versione 90Chrome versione 90
  • L'intestazione HTTP Feature-Policy è stata sostituita da una nuova intestazione Permissions-Policy per controllare la delega dei permessi e l'abilitazione di funzionalità avanzate, che include il supporto per valori di campi strutturati (ad esempio, ora puoi specificare "Permissions-Policy: geolocalizzazione =()" invece di "Politica funzionalità: geolocalizzazione 'nessuna'").
  • Protezione rafforzata contro l'uso dei buffer di protocollo per attacchi causati dall'esecuzione speculativa di istruzioni nei processori. La protezione viene implementata aggiungendo il tipo MIME "application/x-protobuffer" all'elenco dei tipi MIME mai sniffati, che viene elaborato tramite il meccanismo Cross-Origin-Read-Blocking. In precedenza, il tipo MIME “application/x-protobuf” era già incluso in un elenco simile, ma “application/x-protobuffer” veniva escluso.
  • L'API di accesso al file system implementa la capacità di spostare la posizione corrente in un file oltre la sua fine, riempiendo lo spazio risultante con zeri durante la scrittura successiva tramite la chiamata FileSystemWritableFileStream.write(). Questa funzionalità consente di creare file sparsi con spazi vuoti e semplifica notevolmente l'organizzazione della scrittura su flussi di file con arrivo non ordinato di blocchi di dati (ad esempio, questo è praticato in BitTorrent).
  • Aggiunto costruttore StaticRange con implementazione di tipi Range leggeri che non richiedono l'aggiornamento di tutti gli oggetti associati ogni volta che cambia l'albero DOM.
  • Implementata la possibilità di specificare i parametri di larghezza e altezza per gli elementi specificato all'interno dell'elemento . Questa funzione consente di calcolare le proporzioni degli elementi , per analogia con come è fatto , E .
  • Il supporto non standardizzato per i canali dati RTP è stato rimosso da WebRTC e si consiglia di utilizzare invece canali dati basati su SCTP.
  • Le proprietà navigator.plugins e navigator.mimeTypes ora restituiscono sempre un valore vuoto (dopo la fine del supporto Flash, queste proprietà non erano più necessarie).
  • Sono stati apportati numerosi piccoli miglioramenti agli strumenti per gli sviluppatori web ed è stato aggiunto un nuovo strumento di debug CSS, flexbox.
    Chrome versione 90

Oltre alle innovazioni e alle correzioni di bug, la nuova versione elimina 37 vulnerabilità. Molte delle vulnerabilità sono state identificate come risultato di test automatizzati utilizzando gli strumenti AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer e AFL. Non sono stati identificati problemi critici che consentano di aggirare tutti i livelli di protezione del browser ed eseguire codice sul sistema al di fuori dell'ambiente sandbox. Nell'ambito del programma di ricompensa in denaro per la scoperta delle vulnerabilità della versione attuale, Google ha pagato 19 premi del valore di $ 54000 (un premio da $ 20000, un premio da $ 10000, due premi da $ 5000, tre premi da $ 3000, un premio da $ 2000, un premio da $ 1000 e quattro premi da $ 500 ). ). L'entità delle 6 ricompense non è stata ancora determinata.

Separatamente, si può notare che ieri, dopo la formazione della versione correttiva 89.0.4389.128, ma prima del rilascio di Chrome 90, è stato pubblicato un altro exploit, che utilizzava una nuova vulnerabilità di 0 giorni che non è stata risolta in Chrome 89.0.4389.128 . Non è ancora chiaro se questo problema sia stato risolto in Chrome 90. Come nel primo caso, l'exploit copre solo una vulnerabilità e non contiene codice per aggirare l'isolamento sandbox (quando si esegue Chrome con il flag "--no-sandbox" , l'exploit si verifica quando l'apertura di una pagina web su piattaforma Windows consente di eseguire Blocco note). La vulnerabilità associata al nuovo exploit colpisce la tecnologia WebAssembly.

Fonte: opennet.ru

Aggiungi un commento