Paskelbtas įrankių rinkinys, skirtas aptikti „Chrome“ įdiegtus priedus

Paskelbtas įrankių rinkinys, įgyvendinantis „Chrome“ naršyklėje įdiegtų priedų aptikimo metodą. Gautas priedų sąrašas gali būti naudojamas tam tikro naršyklės egzemplioriaus pasyvaus identifikavimo tikslumui padidinti kartu su kitais netiesioginiais indikatoriais, tokiais kaip ekrano skiriamoji geba, WebGL ypatybės, įdiegtų papildinių ir šriftų sąrašai. Siūlomas diegimas patikrina daugiau nei 1000 priedų įdiegimą. Jūsų sistemai išbandyti siūloma internetinė demonstracija.

Priedai apibrėžiami analizuojant priedų teikiamus išteklius, prieinamus išorinėms užklausoms. Paprastai priedai apima įvairius pridedamus failus, pvz., vaizdus, ​​kuriuos priedo apraše apibrėžia ypatybė web_accessible_resources. Pirmoje „Chrome“ aprašo versijoje prieiga prie išteklių nebuvo ribojama ir bet kuri svetainė galėjo atsisiųsti pateiktus išteklius. Antroje manifesto versijoje prieiga prie tokių išteklių pagal numatytuosius nustatymus buvo leidžiama tik pačiam priedui. Trečiojoje manifesto versijoje buvo galima nustatyti, kokie ištekliai gali būti suteikti kokiems priedams, domenams ir puslapiams.

Tinklalapiai gali prašyti plėtinio teikiamų išteklių naudodami iškvietimo metodą (pvz., „fetch('chrome-extension://okb....nd5/test.png')“), o grąžinimas „false“ paprastai reiškia kad priedas neįdiegtas. Norėdami blokuoti, kad priedas aptiktų ištekliaus buvimą, kai kurie priedai generuoja patvirtinimo prieigos raktą, reikalingą prieigai prie šaltinio. Visada nepavyksta iškviesti atkviesti nenurodžius prieigos rakto.

Pasirodo, prieigos prie priedų išteklių apsaugą galima apeiti įvertinus operacijos vykdymo laiką. Nepaisant to, kad „fetch“ visada grąžina klaidą, kai prašoma be prieigos rakto, operacijos su priedu ir be jo vykdymo laikas skiriasi – jei priedas yra, užklausa užtruks ilgiau nei jei priedas nėra įdiegtas. Įvertinę reakcijos laiką, galite gana tiksliai nustatyti priedo buvimą.

Kai kuriuos priedus, kuriuose nėra išoriškai pasiekiamų išteklių, galima atpažinti pagal papildomas ypatybes. Pavyzdžiui, MetaMask priedą galima apibrėžti įvertinus ypatybės window.ethereum apibrėžimą (jei priedas nenustatytas, "typeof window.ethereum" grąžins reikšmę "undefined").

Šaltinis: opennet.ru

Добавить комментарий