Пазбаўляемся ад "vk.com/away.php" або пераход па спасылках здаровага чалавека

Пераходзячы па спасылках, размешчаных ва Вконтакте, можна заўважыць, што як і ў астатніх сацыяльных сетках, спачатку адбываецца пераход на "бяспечную" спасылку, пасля чаго сацыяльная сетка вырашае: ці трэба пускаць карыстальніка далей ці не. Большасць уважлівых людзей заўважалі паўсекунднае з'яўленне "vk.com/away.php" у адрасным радку браўзэра, але, вядома, не надавалі гэтаму значэння.

Пазбаўляемся ад "vk.com/away.php" або пераход па спасылках здаровага чалавека

перадгісторыя

Аднойчы, нейкі праграміст, дарабіўшы чарговы праект, усвядоміў, што апантаны жаданнем аб ім усім распавесці. Праект размяшчаўся на серверы з унікальным IP, але без даменнага імя. Таму на хуткую руку быў зрабіў прыгожы паддамен трэцяга ўзроўню ў дамене .ddns.net, які ў выніку выкарыстоўваўся ў якасці спасылкі. 

Вярнуўшыся праз некаторы час да пасады, праграміст выявіў, што замест сайта адчыняецца заглушка вк, дасведчаная аб пераходзе на небяспечны сайт:

Пазбаўляемся ад "vk.com/away.php" або пераход па спасылках здаровага чалавека

Здавалася б, разумныя карыстальнікі самі маюць права вырашаць, на які сайт ім пераходзіць, а на які не, аднак Вконтакте думае інакш і не дае ніякай магчымасці без мыліц перайсці па спасылцы.

Што не так

У такой рэалізацыі ёсць некалькі важкіх недахопаў:

  • Адсутнасць магчымасці адкрыць падазроны сайт. Як гаварылася вышэй, у карыстальніка няма магчымасці пераадолець заглушку. Адзіны спосаб адкрыць спасылку - скапіяваць яе і ўставіць у адрасны радок.
  • Запавольвае пераход па спасылцы. Хуткасць перанакіравання залежыць ад пінгу. Адпаведна пры вялікім пінгу, могуць знікнуць каштоўныя секунды жыцця, што, як мы ведаем, не дапушчальна.
  • Маніторынг пераходаў. Такі метад палягчае збор інфармацыі аб дзеяннях карыстачоў, чым вядома ж і карыстаецца Вк, дадаючы да бяспечнай спасылкі id паста з якога быў зроблены пераход.

Вызваляем Джанга

Аптымальным рашэннем усіх вышэй пералічаных праблем можа стаць пашырэнне для браўзэра. Па відавочных прычынах выбар падае на Chrome. На хабры ёсць выдатная артыкул артыкул прысвечаны напісанню пашырэнняў для Сhrome.

Для стварэння такога пашырэння нам спатрэбіцца стварыць у асобнай тэчцы два файлы: 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 адрас, калі ён пачынаецца на «vk.com/away.php», то заменны яго на правільны, які знаходзіцца ў GET-запыце:

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 замяняюцца на зыходныя.

замест заключэння

Вядома, такі тып заглушак выратаваў шмат людзей ад мільёнаў ашуканскіх сайтаў, аднак, я лічу, што людзі самі ў праве вырашаць, пераходзіць ім на небяспечную спасылку ці не.
Для зручнасці я размясціў праект на GitHub.

Крыніца: habr.com

Дадаць каментар