NoklikŔķinot uz VKontakte ievietotajÄm saitÄm, pamanÄ«sit, ka tÄpat kÄ citos sociÄlajos tÄ«klos vispirms notiek pÄreja uz ādroÅ”uā saiti, pÄc kuras sociÄlais tÄ«kls izlemj, vai lietotÄjam ir jÄļauj tÄlÄk vai nÄ. VÄrÄ«gÄkie cilvÄki pamanÄ«ja pussekundi āvk.com/away.phpā parÄdÄ«Å”anos pÄrlÅ«kprogrammas adreses joslÄ, taÄu, protams, nepieŔķīra tam nekÄdu nozÄ«mi.
AizvÄsture
KÄdu dienu kÄds programmÄtÄjs, pabeidzis citu projektu, saprata, ka ir apsÄsts ar vÄlmi par to pastÄstÄ«t visiem. Projekts tika mitinÄts serverÄ« ar unikÄlu IP, bet bez domÄna nosaukuma. TÄpÄc domÄnÄ .ddns.net Ätri tika izveidots skaists treÅ”Ä lÄ«meÅa apakÅ”domÄns, kas galu galÄ tika izmantots kÄ saite.
PÄc brīža atgriežoties pie ieraksta, programmÄtÄjs atklÄja, ka vietnes vietÄ atveras VK stubs, kas informÄ par pÄreju uz nedroÅ”u vietni:
Å Ä·iet, ka gudriem lietotÄjiem paÅ”iem ir tiesÄ«bas izlemt, uz kuru vietni viÅiem jÄiet un uz kuru nÄ, taÄu VKontakte domÄ savÄdÄk un nedod nekÄdu iespÄju sekot saitei bez kruÄ·iem.
Kas noticis
Å ai ievieÅ”anai ir vairÄki bÅ«tiski trÅ«kumi:
- NespÄja atvÄrt aizdomÄ«gu vietni. KÄ minÄts iepriekÅ”, lietotÄjam nav iespÄjas pÄrvarÄt nepilnÄ«bu. VienÄ«gais veids, kÄ atvÄrt saiti, ir kopÄt un ielÄ«mÄt to adreses joslÄ.
- PalÄnina saiÅ”u navigÄciju. PÄrvirzÄ«Å”anas Ätrums ir atkarÄ«gs no ping. AttiecÄ«gi ar augstu ping var tikt zaudÄtas vÄrtÄ«gas dzÄ«ves sekundes, kas, kÄ mÄs zinÄm, nav pieÅemami.
- PÄrejas uzraudzÄ«ba. Å Ä« metode atvieglo informÄcijas vÄkÅ”anu par lietotÄja darbÄ«bÄm, ko, protams, izmanto VK, pievienojot droÅ”ai saitei tÄs ziÅas ID, no kuras tika veikta pÄreja.
Django atbrīvoŔana
OptimÄlais risinÄjums visÄm iepriekÅ”minÄtajÄm problÄmÄm var bÅ«t pÄrlÅ«kprogrammas paplaÅ”inÄjums. AcÄ«mredzamu iemeslu dÄļ izvÄle attiecas uz Chrome. Uz rumbas ir lielisks
Lai izveidotu Å”Ädu paplaÅ”inÄjumu, mums bÅ«s jÄizveido divi faili atseviÅ”Ä·Ä mapÄ: json-Manifest un JavaScript fails, lai pÄrraudzÄ«tu paÅ”reizÄjo URL adresi.
Izveidojiet manifesta failu
Galvenais, kas mums nepiecieÅ”ams, ir pieŔķirt paplaÅ”inÄjumam atļauju strÄdÄt ar cilnÄm un pieŔķirt izpildÄmu skriptu:
{
"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"
}
}
Izveidojiet js failu
Å eit viss ir vienkÄrÅ”i: notikumÄ, kas tiek izsaukts, kad tiek izveidota jauna cilne, mÄs pievienojam url adreses pÄrbaudi, ja tÄ sÄkas ar ā
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});
}
});
});
PagarinÄjuma montÄža
PÄrliecinoties, ka abi faili atrodas vienÄ mapÄ, atveriet pÄrlÅ«ku Chrome, atlasiet paplaÅ”inÄjuma cilni un noklikŔķiniet uz āIelÄdÄt neiepakotu paplaÅ”inÄjumuā. AtvÄrtajÄ logÄ atlasiet rakstÄ«tÄ paplaÅ”inÄtÄ faila mapi un noklikŔķiniet uz SavÄkt. Gatavs! Tagad visas saites, piemÄram, vk.com/away, ir aizstÄtas ar sÄkotnÄjÄm.
TÄ vietÄ, lai noslÄgtu
Protams, Å”Äda veida stubs ir izglÄbis daudzus cilvÄkus no miljoniem krÄpniecisku vietÅu, tomÄr es uzskatu, ka cilvÄkiem paÅ”iem ir tiesÄ«bas izlemt, vai klikŔķinÄt uz nedroÅ”as saites vai nÄ.
ÄrtÄ«bas labad es ievietoju projektu vietnÄ
Avots: www.habr.com