Yakaunza nzira nyowani yeyakavanzika system uye browser kuzivikanwa

Boka revaongorori kubva kuTechnical University yeGraz (Austria), yaimbozivikanwa nekugadzira nzira dzekurwisa MDS, NetSpecter ΠΈ Throwhammer, rakafukurwa Ruzivo nezve yechitatu-bato yekuongorora chiteshi nzira iyo inokutendera iwe kuti uone iyo chaiyo vhezheni yebrowser, sisitimu yekushandisa inoshandiswa, iyo CPU dhizaini uye mashandisirwo ekuwedzera kurwisa zvakavanzika kuzivikanwa.

Kuti uone aya maparamendi, zvakakwana kumhanyisa JavaScript kodhi yakagadzirwa nevaongorori mubrowser. Mukuita, iyo nzira inogona kushandiswa kwete chete seimwe sosi yekuwedzera yekuzivikanwa kwemushandisi, asi zvakare kuona maparamita emamiriro ehurongwa hwekushandiswa kwakanangwa kwekushandisa, uchifunga nezve OS, zvivakwa uye browser. Iyo nzira inoshanda zvakare kana uchishandisa mabhurawuza ayo anoshandisa zvakavanzika zvekuvharisa nzira, seTor Browser. Source kodhi prototype ine nzira yekushandisa rakabudiswa pasi peMIT rezinesi.

Kutsunga kunoitwa pahwaro hwekuona maitiro ezvivakwa muJavaScript ayo ane hunhu hwemabhurawuza akasiyana uye hunhu hwenguva yekuitwa yekushanda, zvichienderana nehunhu hweJIT, CPU uye ndangariro dzekugovera nzira. Kutsanangura zvivakwa kunoitwa nekugadzira runyoro rwezvinhu zvese zvinowanikwa kubva kuJavaScript. Sezvazvakazoitika, huwandu hwezvinhu hunoenderana zvakananga neinjini yebrowser uye shanduro yayo.

basa getProperties(o) {
var result = [];
nguva (o !== null) {
mhedzisiro = result.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
return result;
}

Semuenzaniso, kuFirefox zvinyorwa zvinoti tsigiro yezvivakwa 2247, nepo nhamba chaiyo yezvivakwa zvakatsanangurwa, kusanganisira zvisina kunyorwa, i15709 (muTor Browser - 15639), yeChrome 2698 zvivakwa zvinoziviswa, asi muchokwadi 13570 inopihwa (mu. Chrome ye Android - 13119) . Huwandu uye kukosha kwezvivakwa zvinosiyana kubva kubrowser vhezheni kune browser vhezheni uye kune akasiyana masisitimu anoshanda.

Hukoshi uye kuvapo kwezvimwe zvivakwa zvinogona kushandiswa kuona rudzi rweOS. Semuenzaniso, muKubuntu pfuma yewindow.innerWidth yakaiswa ku1000, uye mukati Windows 10 yakagadzirirwa 1001. The window.navigator.activeVRDisplays property inowanikwa paWindows, asi haisi kuwanikwa paLinux. Kune Android, akawanda chaiwo mafoni anopiwa, asi hwindo.SharedWorker haina. Kuti uone iyo inoshanda sisitimu, inokurudzirwa zvakare kushandisa kuongororwa kweWebGL paramita, iyo mamiriro ayo anoenderana nevatyairi. Pamusoro pezvo, kufonera WEBGL_debug_renderer_infoextension kunokubvumidza kuti uwane ruzivo nezve OpenGL rendering injini, iyo yakasiyana kune yega yega inoshanda.

Kuti uone iyo CPU, kuongororwa kwekusiyana panguva yekuitwa kweakasiyana akajairwa kodhi mabhuroki anoshandiswa, iyo kugadziriswa kwayo kunoenderana nekuvakwa kweiyo seti yekuraira, uchifunga nezve JIT maitiro (inotarwa kuti mangani maCPU marejista achashandiswa. uye mune izvo zviitiko JIT ichagadzira kodhi inoshanda ine optimizations uye kushandiswa kwemirayiridzo yakawedzerwa, uye kana zvisiri ). Kuti uone rudzi rwechiyeuchidzo chekugovera sisitimu uye sisitimu yekushandisa, mutsauko wenguva yekugovera yekurangarira kune akasiyana zvimiro inoyerwa zvakare, iyo inogona kushandiswa kutonga saizi yendangariro zvidhinha.

Iwo maparamendi akatemerwa panguva yekunyora script anofananidzwa nereferensi tsika dzakajairwa kune dzakamboedzwa nharaunda. Munguva yekuyedzwa, nzira yakagadziridzwa yakaita kuti zvikwanise kudoma nemazvo makumi mana enzvimbo dzekuyedza dzakasiyana, kuratidza mavhezheni ebrowser anoshandiswa, mugadziri weCPU, sisitimu yekushandisa yakashandiswa, uye nyaya yekuti yaimhanya pahardware chaiyo kana muchina chaiwo.

Neparutivi, zvinocherechedzwa kuti zvinogoneka kutsanangura browser-add-on uye kunyange ega ega-add-on marongero, kusanganisira ma-add-on akagadzirirwa kuvharira yakavanzika yekuzivikanwa nzira kana yakavanzika yekubhurawuza modhi chiitiko. Muchirevo chenzira yakarongwa, kuwedzera kwakadaro kunova imwe nzvimbo yedata yekuzivikanwa. Kuwedzerwa kunotarirwa nekuongorora kukanganisa kwemiganhu yemamiriro ekutanga akaunzwa nekuwedzera.

Dzimwe nzira dzekuzivikanwa dzinosanganisira kurangarira zvisina kunanga data senge screen resolution, runyorwa rwemhando dzeMIME dzinotsigirwa, maparamita chaiwo mumisoro (HTTP / 2 ΠΈ HTTPS), kuongororwa kwekuiswa plugins uye mafonti, kuwanikwa kwemamwe maWeb API, chaiwo kumakadhi evhidhiyo maficha kupa uchishandisa WebGL uye Canvas, manipulation neCSS, kuongororwa kwemaitiro ekushanda nawo mouse ΠΈ keyboard.

Source: opennet.ru

Voeg