Կտտացնելով VKontakte-ում տեղադրված հղումներին՝ կնկատեք, որ, ինչպես մյուս սոցիալական ցանցերում, նախ անցում է կատարվում «անվտանգ» հղմանը, որից հետո սոցիալական ցանցը որոշում է՝ օգտատերին հետագա թույլատրել, թե ոչ: Շատ ուշադիր մարդիկ նկատել են «vk.com/away.php»-ի կես վայրկյան հայտնվելը բրաուզերի հասցեագոտում, բայց, իհարկե, դրան ոչ մի կարևորություն չեն տվել։
նախապատմությանը
Մի օր ծրագրավորողներից մեկը, ավարտելով մեկ այլ նախագիծ, հասկացավ, որ տարված է բոլորին այդ մասին պատմելու ցանկությամբ։ Նախագիծը տեղադրվել է եզակի IP-ով սերվերի վրա, սակայն առանց դոմենային անվանման: Հետևաբար, .ddns.net տիրույթում արագ ստեղծվեց երրորդ մակարդակի գեղեցիկ ենթադոմեյն, որն ի վերջո օգտագործվեց որպես հղում։
Որոշ ժամանակ անց վերադառնալով գրառմանը, ծրագրավորողը հայտնաբերեց, որ կայքի փոխարեն բացվում է VK կոճղ, որը տեղեկացնում է ոչ անվտանգ կայք անցնելու մասին.
Թվում է, թե խելացի օգտատերերն իրենք իրավունք ունեն որոշելու, թե որ կայք պետք է գնան, որը ոչ, բայց VKontakte-ն այլ կերպ է մտածում և ոչ մի հնարավորություն չի տալիս հետևել հղմանը առանց հենակների։
Ինչ է պատահել
Այս իրականացումն ունի մի քանի նշանակալի թերություններ.
- Կասկածելի կայք բացելու անկարողություն: Ինչպես նշվեց վերևում, օգտատերը ելք չունի հաղթահարելու կոճղը: Հղումը բացելու միակ միջոցը այն պատճենել և տեղադրելն է հասցեի տողում:
- Դանդաղեցնում է հղման նավիգացիան: Վերահղման արագությունը կախված է պինգից: Համապատասխանաբար, բարձր պինգով կարող են կորցնել կյանքի թանկարժեք վայրկյաններ, ինչը, ինչպես գիտենք, անընդունելի է։
- Անցումային մոնիտորինգ. Այս մեթոդը հեշտացնում է օգտատերերի գործողությունների մասին տեղեկություններ հավաքելը, ինչն, անշուշտ, օգտագործում է VK-ն՝ անվտանգ հղման վրա ավելացնելով այն գրառման id-ը, որտեղից կատարվել է անցումը։
Ազատելով Ջանգոյին
Վերոնշյալ բոլոր խնդիրների օպտիմալ լուծումը կարող է լինել բրաուզերի ընդլայնումը: Հասկանալի պատճառներով ընտրությունը ընկնում է Chrome-ի վրա: Գերազանց կա հանգույցի վրա
Նման ընդլայնում ստեղծելու համար մենք պետք է առանձին թղթապանակում ստեղծենք երկու ֆայլ՝ json-Manifest և JavaScript ֆայլ՝ ընթացիկ url հասցեն վերահսկելու համար։
Ստեղծեք Manifest ֆայլ
Հիմնական բանը, որ մեզ անհրաժեշտ է, ընդլայնման թույլտվություն տալն է ներդիրների հետ աշխատելու և գործարկվող սցենար նշանակելու համար.
{
"manifest_version": 2,
"name": "Run Away From vk.com/away",
"version": "1.0",
"background": {
"scripts": ["background.js"]
},
"permissions": ["tabs"],
"browser_action": {
"default_title": "Run Away From vk.com/away"
}
}
Ստեղծեք js ֆայլ
Այստեղ ամեն ինչ պարզ է. այն դեպքում, երբ կոչվում է նոր ներդիր, մենք ավելացնում ենք url հասցեի ստուգում, եթե այն սկսվում է «-ով:
chrome.tabs.onCreated.addListener( function (tabId, changeInfo, tab) {
chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {
var url = tabs[0].url;
if (url.substr(0,23) == "https://vk.com/away.php"){
var last = url.indexOf("&", 0)
if(last == -1)last = 1000;
var url = decodeURIComponent(url.substr(27, last-27));
chrome.tabs.update({url: url});
}
});
});
Ընդլայնման հավաքում
Համոզվելով, որ երկու ֆայլերն էլ նույն թղթապանակում են, բացեք Chrome-ը, ընտրեք ընդլայնման ներդիրը և սեղմեք «Բեռնել չփաթեթավորված ընդլայնումը»: Բացվող պատուհանում ընտրեք գրված ընդլայնված ֆայլի թղթապանակը և սեղմեք Հավաքել։ Պատրաստ. Այժմ բոլոր հղումները, ինչպիսիք են vk.com/away-ը, փոխարինվել են բնօրինակներով:
Փոխարենը մի եզրակացության
Իհարկե, այս տեսակի կոճղերը շատերին փրկել են միլիոնավոր խարդախ կայքերից, այնուամենայնիվ, կարծում եմ, որ մարդիկ իրենք իրավունք ունեն որոշել՝ սեղմե՞լ անապահով հղման վրա, թե՞ ոչ:
Հարմարության համար ես նախագիծը տեղադրեցի
Source: www.habr.com