"Vk.com/away.php" dan qutulish yoki sog'lom odamning havolalariga rioya qilish

Vkontakte-da e'lon qilingan havolalarni bosish orqali siz boshqa ijtimoiy tarmoqlarda bo'lgani kabi, birinchi navbatda "xavfsiz" havolaga o'tish sodir bo'lishini sezasiz, shundan so'ng ijtimoiy tarmoq foydalanuvchiga ruxsat berish kerakmi yoki yo'qligini hal qiladi. Ko'pchilik diqqatli odamlar brauzerning manzil satrida "vk.com/away.php" ning yarim soniya ko'rinishini payqashdi, lekin, albatta, bunga ahamiyat bermadi.

"Vk.com/away.php" dan qutulish yoki sog'lom odamning havolalariga rioya qilish

Sana oldin

Bir kuni biron bir dasturchi yana bir loyihani tugatib, bu haqda hammaga aytib berish istagida ekanligini tushundi. Loyiha noyob IP-ga ega, ammo domen nomisiz serverda joylashtirilgan. Shu sababli, .ddns.net domenida tezda uchinchi darajali chiroyli subdomen yaratildi, u oxir-oqibat havola sifatida ishlatilgan. 

Biroz vaqt o'tgach, postga qaytgan dasturchi, sayt o'rniga xavfli saytga o'tish haqida ma'lumot beruvchi VK stubini ochayotganini aniqladi:

"Vk.com/away.php" dan qutulish yoki sog'lom odamning havolalariga rioya qilish

Ko'rinishidan, aqlli foydalanuvchilarning o'zlari qaysi saytga kirishlari va qaysi biri kirmasliklari haqida qaror qabul qilish huquqiga ega, ammo VKontakte boshqacha o'ylaydi va havolani tayoqchalarsiz kuzatish imkoniyatini bermaydi.

Nima bo'ldi

Ushbu amaliyot bir qator muhim kamchiliklarga ega:

  • Shubhali saytni ocha olmaslik. Yuqorida aytib o'tilganidek, foydalanuvchi stubni engib o'tishga imkoni yo'q. Havolani ochishning yagona yo'li uni nusxalash va manzil satriga joylashtirishdir.
  • Havola navigatsiyasini sekinlashtiradi. Qayta yo'naltirish tezligi pingga bog'liq. Shunga ko'ra, yuqori ping bilan hayotning qimmatli soniyalari yo'qolishi mumkin, bu biz bilganimizdek, qabul qilinishi mumkin emas.
  • O'tish monitoringi. Ushbu usul foydalanuvchi harakatlari haqida ma'lumot to'plashni osonlashtiradi, bu, albatta, VK foydalanadi va xavfsiz havolaga o'tish amalga oshirilgan postning identifikatorini qo'shadi.

Djangoni ozod qilish

Yuqoridagi barcha muammolarning optimal yechimi brauzer kengaytmasi bo'lishi mumkin. Aniq sabablarga ko'ra tanlov Chrome brauzeriga to'g'ri keladi. Hubda ajoyib biri bor maqola Chrome uchun kengaytmalarni yozishga bag'ishlangan maqola.

Bunday kengaytmani yaratish uchun alohida papkada ikkita fayl yaratishimiz kerak bo'ladi: json-Manifest va joriy url manzilini kuzatish uchun JavaScript fayli.

Manifest faylini yarating

Bizga kerak bo'lgan asosiy narsa kengaytmaga yorliqlar bilan ishlash va bajariladigan skriptni tayinlash uchun ruxsat berishdir:

{
  "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 faylini yarating

Bu erda hamma narsa oddiy: yangi yorliq yaratilganda chaqirilgan voqeada, agar u " bilan boshlangan bo'lsa, url manziliga chek qo'shamiz.vk.com/away.php", keyin uni GET so'rovidagi to'g'risi bilan almashtiring:

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});
		}
	});
});

Kengaytmani yig'ish

Ikkala fayl bir xil papkada ekanligiga ishonch hosil qilganingizdan so'ng, Chrome-ni oching, kengaytma yorlig'ini tanlang va "Ochilmagan kengaytmani yuklash" tugmasini bosing. Ochilgan oynada siz yozgan, kengaytirilgan papkani tanlang va "To'plash" tugmasini bosing. Tayyor! Endi vk.com/away kabi barcha havolalar asllariga almashtiriladi.

Xulosa o'rniga

Albatta, bu turdagi stub ko'p odamlarni millionlab firibgar saytlardan qutqardi, ammo men odamlarning o'zlari xavfli havolani bosish yoki bosmaslikni hal qilish huquqiga ega deb o'ylayman.
Qulaylik uchun men loyihani e'lon qildim Github.

Manba: www.habr.com

a Izoh qo'shish