Kliknutím na odkazy zveřejněné na VKontakte si všimnete, že stejně jako v jiných sociálních sítích nejprve dojde k přechodu na „bezpečný“ odkaz, po kterém se sociální síť rozhodne, zda má být uživateli povoleno nebo ne. Většina pozorných lidí si všimla půlsekundového výskytu „vk.com/away.php“ v adresním řádku prohlížeče, ale samozřejmě tomu nepřikládali žádný význam.
pravěk
Jednoho dne si jistý programátor po dokončení dalšího projektu uvědomil, že je posedlý touhou o tom všem říct. Projekt byl hostován na serveru s jedinečnou IP, ale bez názvu domény. V doméně .ddns.net se proto rychle vytvořila krásná subdoména třetí úrovně, která byla nakonec použita jako odkaz.
Když se programátor po chvíli vrátil k příspěvku, zjistil, že místo webu se otevírá útržek VK informující o přechodu na nebezpečný web:
Zdá se, že sami chytří uživatelé mají právo rozhodnout, na kterou stránku by měli jít a na kterou ne, ale VKontakte myslí jinak a neposkytuje žádnou příležitost sledovat odkaz bez berliček.
Co je špatně
Tato implementace má několik významných nevýhod:
- Neschopnost otevřít podezřelou stránku. Jak je uvedeno výše, uživatel nemá žádný způsob, jak útržek překonat. Jediný způsob, jak otevřít odkaz, je zkopírovat a vložit jej do adresního řádku.
- Zpomaluje navigaci odkazem. Rychlost přesměrování závisí na pingu. V souladu s tím, s vysokým pingem, může dojít ke ztrátě drahocenných sekund života, což, jak víme, není přijatelné.
- Sledování přechodu. Tato metoda usnadňuje shromažďování informací o uživatelských akcích, což VK samozřejmě používá, přičemž k zabezpečenému odkazu přidává id příspěvku, ze kterého byl přechod proveden.
Osvobození Djanga
Optimálním řešením všech výše uvedených problémů může být rozšíření prohlížeče. Z pochopitelných důvodů padá volba na Chrome. Na hubu je jeden výborný
K vytvoření takového rozšíření budeme muset vytvořit dva soubory v samostatné složce: json-Manifest a soubor JavaScript pro sledování aktuální url adresy.
Vytvořte soubor Manifest
Hlavní věc, kterou potřebujeme, je udělit rozšíření oprávnění pracovat s kartami a přiřadit spustitelný skript:
{
"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"
}
}
Vytvořte soubor js
Zde je vše jednoduché: v případě zavolání při vytvoření nové karty přidáme kontrolu adresy URL, pokud začíná „
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});
}
});
});
Montáž nástavce
Poté, co se ujistěte, že jsou oba soubory ve stejné složce, otevřete Chrome, vyberte kartu rozšíření a klikněte na „Načíst rozbalené rozšíření“. V okně, které se otevře, vyberte složku zapsaného rozšířeného souboru a klikněte na Shromáždit. Připraveno! Nyní jsou všechny odkazy jako vk.com/away nahrazeny původními.
Místo závěru
Tento typ útržku samozřejmě zachránil mnoho lidí před miliony podvodných stránek, nicméně věřím, že lidé sami mají právo se rozhodnout, zda kliknou na nebezpečný odkaz nebo ne.
Pro usnadnění jsem projekt zveřejnil na
Zdroj: www.habr.com