"vk.com/away.php" dən xilas olmaq və ya sağlam bir insanın bağlantılarını izləmək

Vkontakte-də yerləşdirilən bağlantılara kliklədikdə görə bilərsiniz ki, digər sosial şəbəkələrdə olduğu kimi, əvvəlcə "təhlükəsiz" keçidə keçid var, bundan sonra sosial şəbəkə istifadəçinin daha da irəli getməsinə icazə verib-verməməsinə qərar verir. Əksər diqqətli insanlar brauzerin ünvan sətrində "vk.com/away.php" yazısının yarım saniyəlik görünməsinə diqqət yetirdilər, lakin təbii ki, buna əhəmiyyət vermədilər.

"vk.com/away.php" dən xilas olmaq və ya sağlam bir insanın bağlantılarını izləmək

Prehistorya

Bir gün, başqa bir layihəni tamamlayan müəyyən bir proqramçı, bu barədə hər kəsə danışmaq istəyi ilə məşğul olduğunu başa düşdü. Layihə unikal IP-yə malik, lakin domen adı olmayan serverdə yerləşdirilib. Buna görə də, mən tez bir zamanda .ddns.net domenində gözəl bir üçüncü səviyyəli subdomen etdim və nəticədə bir keçid kimi istifadə edildi. 

Bir müddət sonra yazıya qayıdan proqramçı, saytın əvəzinə təhlükəli sayta keçid barədə məlumat verən VK stubunun açıldığını tapdı:

"vk.com/away.php" dən xilas olmaq və ya sağlam bir insanın bağlantılarını izləmək

Belə görünür ki, ağıllı istifadəçilərin hansı sayta getdiklərini və hansının getməyəcəyinə qərar vermək hüququ var, lakin Vkontakte fərqli düşünür və qoltuq alətləri olmadan linki izləmək üçün heç bir imkan vermir.

Səhv nədir

Bu tətbiqin bir sıra əhəmiyyətli çatışmazlıqları var:

  • Şübhəli saytı aça bilməmək. Yuxarıda qeyd edildiyi kimi, istifadəçinin stubunu aşmaq imkanı yoxdur. Linki açmağın yeganə yolu onu kopyalayıb ünvan çubuğuna yapışdırmaqdır.
  • Linki yavaşlatır. Yönləndirmə sürəti pingdən asılıdır. Müvafiq olaraq, böyük bir ping ilə həyatın qiymətli saniyələri itirilə bilər, bu, bildiyimiz kimi, qəbuledilməzdir.
  • Keçid monitorinqi. Bu üsul, əlbəttə ki, VK-nın istifadə etdiyi istifadəçi hərəkətləri haqqında məlumat toplamağı asanlaşdırır, təhlükəsiz keçidə keçidin edildiyi yazının id-sini əlavə edir.

Djanqonu azad etmək

Yuxarıda göstərilən bütün problemlərin ən yaxşı həlli brauzer genişləndirilməsi ola bilər. Aydın səbəblərə görə seçim Chrome-a düşür. Hubda əla biri var məqalə Chrome üçün uzantıların yazılmasına həsr olunmuş məqalə.

Belə bir uzantı yaratmaq üçün ayrıca qovluqda iki fayl yaratmalıyıq: json-Manifest və cari url ünvanını izləmək üçün JavaScript faylı.

Manifest faylı yaradın

Bizə lazım olan əsas şey, uzantıya tablarla işləmək və icra edilə bilən skript təyin etmək üçün icazə verməkdir:

{
  "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 faylı yaradın

Burada hər şey sadədir: yeni tab yaradılan zaman çağırılan tədbirdə, " ilə başlayırsa, url ünvanı üçün yoxlama əlavə edirik.vk.com/away.php”, sonra onu GET sorğusunda olan düzgün ilə əvəz edirik:

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

Uzatma yığırıq

Hər iki faylın eyni qovluqda olduğuna əmin olduqdan sonra, Chrome-u açın, genişləndirmə nişanını seçin və "Paketdən çıxarılan genişləndirməni yükləyin" düyməsini basın. Açılan pəncərədə uzadılmış qovluğu seçin və toplama düyməsini basın. Hazır! İndi vk.com/away kimi bütün bağlantılar orijinalları ilə əvəz olunur.

Bunun əvəzinə bir nəticəyə

Əlbəttə ki, bu tip stub bir çox insanı milyonlarla fırıldaqçı saytlardan xilas etdi, lakin inanıram ki, insanların etibarsız bir keçidə daxil olub-olmaması barədə özləri qərar vermək hüququ var.
Rahatlıq üçün layihəni saytda yerləşdirdim GitHub.

Mənbə: www.habr.com

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