AtbrÄ«voÅ”anās no ā€œvk.com/away.phpā€ vai sekoÅ”ana saitēm no vesela cilvēka

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.

AtbrÄ«voÅ”anās no ā€œvk.com/away.phpā€ vai sekoÅ”ana saitēm no vesela cilvēka

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:

AtbrÄ«voÅ”anās no ā€œvk.com/away.phpā€ vai sekoÅ”ana saitēm no vesela cilvēka

Å Ä·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 raksts Raksts, kas veltÄ«ts Chrome paplaÅ”inājumu rakstÄ«Å”anai.

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 ā€œvk.com/away.php", pēc tam aizstājiet to ar pareizo, kas ir GET pieprasÄ«jumā:

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ē GitHub.

Avots: www.habr.com

Pievieno komentāru