Позбавляємося «vk.com/away.php» або перехід за посиланнями здорової людини

Переходячи за посиланнями, розміщеними у Вконтакті, можна побачити, що як і інших соціальних мережах, спочатку відбувається перехід на «безпечну» посилання, після чого соціальна мережа вирішує: чи потрібно пускати користувача далі чи ні. Більшість уважних людей помічали півсекундну появу vk.com/away.php в адресному рядку браузера, але, звичайно, не надавали цьому значення.

Позбавляємося «vk.com/away.php» або перехід за посиланнями здорової людини

Передісторія

Якось, програміст, доробивши черговий проект, усвідомив, що одержимий бажанням про нього всім розповісти. Проект розміщувався на сервері з унікальним ІР, але без доменного імені. Тому нашвидкуруч зробив гарний піддомен третього рівня в домені .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

Додати коментар або відгук