Հրապարակվել է Chrome-ում տեղադրված հավելումների հայտնաբերման գործիքակազմը

Հրապարակվել է գործիքակազմ, որն իրականացնում է Chrome բրաուզերում տեղադրված հավելումները հայտնաբերելու մեթոդ։ Ստացված հավելումների ցանկը կարող է օգտագործվել բրաուզերի որոշակի օրինակի պասիվ նույնականացման ճշգրտությունը բարձրացնելու համար՝ համակցված այլ անուղղակի ցուցիչների հետ, ինչպիսիք են էկրանի լուծաչափը, WebGL-ի առանձնահատկությունները, տեղադրված փլագինների և տառատեսակների ցուցակները: Առաջարկվող իրականացումը ստուգում է ավելի քան 1000 հավելումների տեղադրումը: Ձեր համակարգը փորձարկելու համար առաջարկվում է առցանց ցուցադրություն:

Հավելումների սահմանումը կատարվում է հավելումների կողմից տրամադրվող ռեսուրսների վերլուծության միջոցով, որոնք հասանելի են արտաքին հարցումների համար: Սովորաբար հավելումները ներառում են տարբեր ուղեկցող ֆայլեր, ինչպիսիք են պատկերները, որոնք սահմանվում են հավելումների մանիֆեստում web_accessible_resources հատկությամբ: Chrome մանիֆեստի առաջին տարբերակում ռեսուրսների հասանելիությունը սահմանափակված չէր, և ցանկացած կայք կարող էր ներբեռնել տրամադրված ռեսուրսները: Մանիֆեստի երկրորդ տարբերակում նման ռեսուրսների մուտքը լռելյայն թույլատրվում էր միայն հավելման համար։ Մանիֆեստի երրորդ տարբերակում հնարավոր եղավ որոշել, թե որ ռեսուրսները որ հավելումներին, տիրույթներին և էջերին կարելի է տրամադրել։

Վեբ էջերը կարող են պահանջել ընդլայնման կողմից տրամադրված ռեսուրսները՝ օգտագործելով fetch մեթոդը (օրինակ՝ «fetch('chrome-extension://okb....nd5/test.png')»), որը վերադարձնելով «false» սովորաբար ցույց է տալիս որ հավելումը տեղադրված չէ։ Որպեսզի հավելումը արգելափակի ռեսուրսի առկայությունը հայտնաբերելու համար, որոշ հավելումներ ստեղծում են հաստատման նշան, որն անհրաժեշտ է ռեսուրս մուտք գործելու համար: Առանց նշանը նշելու բեռնել կանչելը միշտ ձախողվում է:

Ինչպես պարզվում է, հավելյալ ռեսուրսների հասանելիության պաշտպանությունը կարելի է շրջանցել՝ գնահատելով գործողության կատարման ժամանակը։ Չնայած այն հանգամանքին, որ fetch-ը միշտ սխալ է վերադարձնում առանց նշանի հարցումներ կատարելիս, գործողության կատարման ժամանակը հավելումով և առանց հավելման տարբեր է. եթե հավելումը առկա է, հարցումն ավելի երկար կտևի, քան հավելումը տեղադրված չէ: Գնահատելով արձագանքման ժամանակը, դուք կարող եք բավականին ճշգրիտ որոշել հավելումների առկայությունը:

Որոշ հավելումներ, որոնք չեն ներառում արտաքին հասանելի ռեսուրսները, կարող են նույնականացվել լրացուցիչ հատկություններով: Օրինակ, MetaMask հավելումը կարող է սահմանվել՝ գնահատելով window.ethereum հատկության սահմանումը (եթե հավելումը կարգավորված չէ, «typeof window.ethereum»-ը կվերադարձնի «undefined» արժեքը):

Source: opennet.ru

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