A apărut o nouă versiune a Chrome 86 și o lansare stabilă a Chromium.
Principalele modificări în Chrome 86:
- protecție împotriva trimiterii nesecurizate a formularelor pe paginile încărcate prin HTTPS, dar care trimit datele prin HTTP.
- Blocarea descărcărilor nesecurizate (http) de fișiere executabile a fost extinsă pentru a include blocarea descărcărilor nesecurizate de arhive (zip, iso etc.) și afișarea de avertismente la descărcarea nesecurizată a documentelor (docx, pdf etc.). În următoarea versiune, se așteaptă blocarea documentelor și afișarea de avertismente pentru imagini, fișiere text și multimedia. Blocarea a fost implementată deoarece descărcarea fișierelor fără criptare poate fi folosită pentru a efectua acțiuni dăunătoare prin falsificarea conținutului în timpul atacurilor MITM.
- În meniul contextual, opțiunea „Afișează întotdeauna URL complet” este activată în mod implicit, opțiune care anterior necesită modificarea setărilor pe pagina about:flags. URL-ul complet poate fi, de asemenea, vizualizat dublu clicând pe bara de adrese. Reamintim că începând cu Chrome 76, adresa este afișată fără protocol și subdomeniu www. În Chrome 79, setarea care revenea la comportamentul anterior a fost eliminată, dar după nemulțumirea utilizatorilor, în Chrome 83 a fost adăugat un nou steag experimental care introduce un element în meniul contextual pentru dezactivarea ascunderii și afișării complete a URL-ului în orice condiții.
- A fost reluată inițiativa de eliminare a suportului FTP. În Chrome 86, FTP este dezactivat în mod implicit pentru aproximativ 1% dintre utilizatori, iar în Chrome 87, acest dezavantaj va fi extins la 50%; totuși, suportul poate fi restabilit prin utilizarea flagurilor "—enable-ftp" sau "—enable-features=FtpProtocol". În Chrome 88, suportul FTP va fi dezactivat complet.
- În versiunea pentru Android, similar cu versiunea desktop, managerul de parole a implementat verificarea autentificărilor și parolelor salvate prin intermediul unei baze de date de conturi compromise, oferind un avertisment în cazul identificării unor probleme sau încercărilor de utilizare a unor parole triviale. Verificarea se realizează printr-o bază de date ce include peste 4 miliarde de conturi compromise apărute în scurgeri de date. Pentru a păstra confidențialitatea, se folosește o verificare a hash-ului prefixului de către utilizator, iar parolele și hash-urile complete nu sunt transmise în exterior.
- În versiunea pentru Android au fost incluse și butonul „Verificare de securitate” (Safety check) și modul îmbunătățit de protecție împotriva site-urilor periculoase (Enhanced Safe Browsing). Butonul „Safety check” oferă un rezumat al eventualelor probleme de securitate, cum ar fi utilizarea unor parole compromise, starea verificării site-urilor malițioase (Safe Browsing), existența actualizărilor neinstalate și detectarea extensiilor malițioase. Modul îmbunătățit de protecție activează verificări suplimentare pentru a proteja împotriva phishingului, activităților malițioase și altor amenințări din Web, incluzând o protecție adițională pentru contul Google și serviciile Google (Gmail, Drive etc.). În cadrul modului obișnuit Safe Browsing, verificările sunt efectuate local printr-o bază de date descărcată periodic în sistemul clientului, în timp ce în modeul Enhanced Safe Browsing informațiile despre pagini și descărcări sunt trimise în timp real pentru verificare de către Google, ceea ce permite o reacție rapidă la amenințări imediat după identificare, fără a aștepta actualizarea listei negre locale.
- A fost adăugat suport pentru fișierul-indicator ".well-known/change-password", prin care proprietarii de site-uri pot specifica adresa unui formular web pentru schimbarea parolei. În cazul în care sunt detectate compromiterea datelor de autentificare ale utilizatorului, Chrome va oferi imediat utilizatorului un formular pentru schimbarea parolei, stabilit pe baza informațiilor din acest fișier.
- A fost implementată o nouă avertizare numită „Safety Tip”, care apare atunci când se deschid site-uri cu domenii foarte asemănătoare cu alte site-uri, iar heuristica sugerează o mare probabilitate de spoofing (de exemplu, deschidere goog0le.com în loc de google.com).
* A fost adăugată suportul pentru cache-ul de navigare (Back-forward cache), care asigură o tranziție instantanee atunci când se utilizează butoanele „Înapoi” și „Înaintați” sau când se navighează pe paginile vizualizate anterior ale site-ului curent. Cache-ul se activează prin setarea chrome://flags/#back-forward-cache.
- Optimizarea consumului de resurse CPU pentru feronici aflate în afara zonei vizibile. Chrome verifică dacă fereastra browserului este acoperită de alte feronici și exclude redarea pixelilor în zonele de suprapunere. Această optimizare a fost activată pentru un procent mic de utilizatori în Chrome 84 și 85, iar acum este activată la scară largă. Comparativ cu versiunile anterioare, a fost rezolvată și incompatibilitatea cu sistemele de virtualizare care cauzau apariția paginilor albe goale.
- S-au înăsprit limitele de resurse pentru tab-uri în fundal. Aceste tab-uri nu pot consuma mai mult de 1% din resursele CPU și pot fi activate cel mult o dată pe minut. După cinci minute în fundal, tab-urile sunt suspendate, cu excepția celor în care se redă conținut multimedia sau se face înregistrare.
- S-a reluat lucrul la unificarea antetului HTTP User-Agent. În noua versiune, suportul pentru mecanismul User-Agent Client Hints a fost activat pentru toți utilizatorii, fiind dezvoltat ca înlocuire pentru User-Agent. Noul mecanism implică transmiterea selectivă a datelor despre parametrii specifici ai browserului și sistemului (versiune, platformă etc.) doar după solicitarea acestora de către server, oferind utilizatorilor posibilitatea de a furniza selectiv aceste informații proprietarilor de site-uri. Atunci când se utilizează User-Agent Client Hints, identificatorul nu este transmis implicit fără o solicitare explicită, ceea ce face imposibilă identificarea pasivă (implicit, este transmis doar numele browserului).
A fost schimbată indicația privind disponibilitatea actualizării și necesitatea repornirii browserului pentru instalarea acesteia. În locul săgeții colorate din câmpul avatarului contului, acum apare textul „Update”. - A fost efectuată o muncă de traducere a browser-ului pentru a aplica o terminologie inclusivă. În denumirile politicilor, cuvintele „whitelist” și „blacklist” au fost înlocuite cu „allowlist” și „blocklist” (politicile deja adăugate vor continua să funcționeze, dar va apărea un avertisment privind trecerea lor în categoria devein obsoletă). În cod și denumirile fișierelor, mențiunile „blacklist” au fost înlocuite cu „blocklist”. Mențiunile vizibile utilizatorului „blacklist” și „whitelist” au fost înlocuite încă de la începutul anului 2019.
A fost adăugată o funcție experimentală pentru editarea parolelor salvate, activată printr-un steag „chrome://flags/#edit-passwords-in-settings”. - API-ul Native File System a fost trecut la categoria stabilă și accesibilă publicului, permițând crearea de aplicații web care interacționează cu fișierele din FS-ul local. De exemplu, noul API ar putea fi solicitat în medii integrate de dezvoltare, editoare de text, imagini și video, care rulează în browser. Pentru a obține capacitatea de a citi și scrie direct în fișiere sau de a utiliza dialoguri pentru deschiderea și salvarea fișierelor, precum și pentru navigarea în conținutul directoarelor, aplicația cere utilizatorului o confirmare specială.
- A fost adăugat selectorul CSS ":focus-visible", care folosește aceeași euristică utilizată de browser la decizia de a afișa indicatorul de schimbare a focusului (atunci când focusul se mută pe un buton prin combinații de taste, indicatorul apare, dar la clic cu mouse-ul — nu). Selectorul CSS ":focus" disponibil anterior evidențiază întotdeauna focusul. În plus, setărilor le-a fost adăugată opțiunea „Quick Focus Highlight”, care, atunci când este activată, va afișa un indicator adițional de focus lângă elementele active, care rămâne vizibil chiar dacă stilurile CSS pentru evidențierea focusului sunt dezactivate pe pagină.
- În modul Origin Trials (funcționalități experimentale care necesită activare separată) au fost adăugate mai multe API-uri noi. Origin Trial permite utilizarea API-ului specificat din aplicații încărcate de pe localhost sau 127.0.0.1 sau după înregistrarea și obținerea unui token special, care este valabil pentru o perioadă limitată pentru un anumit site.
- API-ul WebHID pentru acces de nivel scăzut la dispozitivele HID (dispozitive de interfață umană, tastaturi, mouse-uri, gamepad-uri, panouri tactile), permițând implementarea logica de lucru cu dispozitivele HID pe JavaScript pentru a organiza munca cu dispozitive HID rare, fără a avea drivere specifice în sistem. În primul rând, noul API este destinat să ofere suport pentru gamepad-uri.
- Informațiile API Screen extind funcționalitățile API Window Placement prin suportul pentru configurații de ecran multiple. Spre deosebire de window.screen, noul API permite manipularea plasării ferestrei în spațiul general al ecranului în sistemele cu monitoare multiple, fără a se limita la ecranul curent.
- Meta-tagul battery-savings, care permite site-ului să informeze browserul despre necesitatea activării modurilor de economisire a energiei și optimizarea sarcinii pe CPU.
- API COOP Reporting pentru informarea despre posibile încălcări ale modurilor de izolare Cross-Origin-Embedder-Policy (COEP) și Cross-Origin-Opener-Policy (COOP), fără aplicarea de restricții efective.
- API Credential Management propune un nou tip de date de acreditive PaymentCredential, care asigură o confirmare suplimentară a operațiunii de plată efectuate. Partea care verifică, de exemplu, banca, are posibilitatea de a genera o cheie publică PublicKeyCredential, care poate fi solicitată de comerciant pentru o confirmare suplimentară și sigură a plății.
- În API PointerEvents a fost adăugat suport pentru înclinarea stylusului*, având suport pentru unghiurile de înălțime (unghiul dintre stylus și ecran) și azimut (unghiul dintre axa X și proiecția stylusului pe ecran), în locul unghiurilor TiltX și TiltY (unghiurile dintre planul stylusului și una dintre axe și planul axelor Y și Z). De asemenea, au fost adăugate funcții de conversie între înălțime/azimut și TiltX/TiltY.
- Codificarea spațiului în URL a fost modificată; în timpul calculării sale în handler-ele protocolului — metoda navigator.registerProtocolHandler() înlocuiește spațiile cu „” în loc de „+”, ceea ce uniformizează comportamentul cu alte browsere, cum ar fi Firefox.
- În CSS a fost adăugat pseudo-elementul "::marker", care permite configurarea culorii, dimensiunii, formei și tipului de numere și puncte pentru enumerări în blocuri
- și
- .
- S-a adăugat suport pentru antetul HTTP Document-Policy, care permite stabilirea regulilor de acces la documente, similar cu mecanismul de izolare sandbox pentru iframe-uri, dar mai universal. De exemplu, prin Document-Policy se pot restricționa utilizarea imaginilor de calitate slabă, dezactiva API-urile JavaScript lente, configura regulile de încărcare pentru iframe-uri, imagini și scripturi, restricționa dimensiunea totală a documentului și traficul, interzice metodele care duc la reproiectarea paginii și dezactiva funcția Scroll-To-Text.
- În elementul
- A fost adăugată metoda ParentNode.replaceChildren() pentru a înlocui toți copiii unui nod părinte cu un alt nod DOM. Anterior, pentru a înlocui noduri, se putea folosi o combinație de metode node.removeChild() și node.append() sau node.innerHTML și node.append().
- Gama de scheme URL permise pentru redefinire prin registerProtocolHandler() a fost extinsă. Lista schemelor include protocoale descentralizate cabal, dat, did, dweb, ethereum, hyper, ipfs, ipns și ssb, ceea ce permite definirea legăturilor la elemente, indiferent de site-ul sau gateway-ul care oferă acces la resursă.
- În API-ul Asynchronous Clipboard a fost adăugată suportul pentru formatul text/html pentru copierea și lipirea HTML prin clipboard (când se scrie și se citește din clipboard, se curăță construcțiile HTML periculoase). Modificarea, de exemplu, permite organizarea lipirii și copierii textului formatat cu imagini și linkuri în editorii web.
- În WebRTC s-a adăugat posibilitatea de a conecta propriile manipulatoare de date, invocate în etapele de codare sau decodare a WebRTC MediaStreamTrack. De exemplu, această posibilitate poate fi folosită pentru a adăuga suport pentru criptarea de la cap la cap a datelor transmise prin servere intermediare.
În motorul JavaScript V8, implementarea Number.prototype.toString a fost accelerată cu 75%. În clasele asincrone a fost adăugată proprietatea .name cu o valoare goală. Metoda Atomics.wake a fost eliminată, aceasta fiind redenumită anterior în Atomics.notify pentru a se conforma specificației ECMA-262. Codul instrumentarului de testare fuzzing JS-Fuzzer a fost deschis. - În compilatorul inițial (baseline) Liftoff pentru WebAssembly, utilizat în versiunea anterioară, a fost inclusă posibilitatea de a folosi instrucțiuni vectoriale SIMD pentru accelerarea calculului. Judecând după teste, optimizarea a reușit să accelereze finalizarea unor teste de până la 2.8 ori. O altă optimizare a permis accelerarea semnificativă a apelului funcțiilor JavaScript importate din WebAssembly.
- Instrumentele pentru dezvoltatorii web au fost extinse: În panoul Media au fost adăugate informații despre playerii utilizați pentru redarea video pe pagină, inclusiv date despre evenimente, loguri, valori ale proprietăților și parametrii de decodare a cadrelor (de exemplu, se pot determina cauzele pierderii cadrelor și problemele de interacțiune din JavaScript).
- În meniul contextual al panoului Elements a fost adăugată opțiunea de a crea capturi de ecran ale elementului selectat (de exemplu, se poate crea o captură de ecran a cuprinsului sau a tabelului).
- În consola web, panoul cu avertizări despre probleme a fost înlocuit cu un mesaj obișnuit, iar problemele legate de cookie-urile de la terți sunt ascunse implicit în tab-ul Issues și pot fi activate cu un bife special.
- În tab-ul Rendering a fost adăugată un buton 'Disable local fonts', care permite simularea absenței fonturilor locale, iar în tab-ul Sensors a apărut opțiunea de a simula inactivitatea utilizatorului (pentru aplicații care utilizează API-ul Idle Detection).
- În panoul Application sunt furnizate informații detaliate despre fiecare iframe, fereastră deschisă și pop-up-uri, inclusiv date despre izolarea Cross-Origin prin COEP și COOP.
A început înlocuirea implementării protocolului QUIC cu varianta dezvoltată în specificația IETF, în loc de varianta Google a QUIC.
Pe lângă noile caracteristici și corectările de erori, noua versiune a eliminat 35 de vulnerabilități. Multe dintre vulnerabilități au fost identificate prin testare automată folosind instrumentele AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer și AFL. O vulnerabilitate (CVE-2020-15967, accesarea unei zone de memorie eliberate în codul pentru interacțiunea cu Google Payments) este marcată ca fiind critică, adică permite ocolirea tuturor nivelurilor de apărare ale browserului și executarea codului în sistem în afara mediului sandbox. În cadrul programului de recompense pentru descoperirea vulnerabilităților pentru versiunea curentă, Google a plătit 27 de premii în valoare totală de 71500 de dolari SUA (o recompensă de 15000 de dolari, trei recompense de 7500 de dolari, cinci recompense de 5000 de dolari, două de 3000 de dolari, una de 200 de dolari și două recompense de 500 de dolari). Suma a 13 recompense nu a fost încă definită.
Preluat de la Opennet.ru
Sursa: linux.org.ru
