Krij "vk.com/away.php" of folgje keppelings fan in sûne persoan

Troch te klikken op de keppelings pleatst op VKontakte, sille jo merke dat, lykas yn oare sosjale netwurken, earst in oergong is nei in "feilige" keppeling, wêrnei't it sosjale netwurk beslút oft de brûker fierder moat wurde tastien of net. De meast opmerklike minsken opmurken de heale sekonde ferskining fan "vk.com/away.php" yn 'e adresbalke fan' e browser, mar, fansels, heakke der gjin belang oan.

Krij "vk.com/away.php" of folgje keppelings fan in sûne persoan

prehistoarje

Op in dei, in bepaalde programmeur, nei't foltôge in oar projekt, realisearre dat hy wie obsedearre mei de winsk om te fertellen elkenien oer it. It projekt waard hosted op in server mei in unyk IP, mar sûnder in domeinnamme. Dêrom waard in prachtich subdomein fan tredden fluch makke yn it .ddns.net-domein, dat úteinlik as keppeling brûkt waard. 

Nei in skoftke werom nei de post, ûntduts de programmeur dat ynstee fan 'e side in VK-stub iepene wie, ynformeare oer de oergong nei in ûnfeilige side:

Krij "vk.com/away.php" of folgje keppelings fan in sûne persoan

It liket derop dat tûke brûkers sels it rjocht hawwe om te besluten nei hokker side se moatte gean en hokker net, mar VKontakte tinkt oars en biedt gjin kâns om de keppeling sûnder krukken te folgjen.

Wat is der mis

Dizze ymplemintaasje hat ferskate wichtige neidielen:

  • Unfermogen om in fertochte side te iepenjen. Lykas hjirboppe oanjûn, hat de brûker gjin manier om de stub te oerwinnen. De ienige manier om de keppeling te iepenjen is it te kopiearjen en te plakjen yn 'e adresbalke.
  • Fertraagt ​​linknavigaasje. De trochferwizing snelheid hinget ôf fan de ping. Dêrtroch kinne mei in hege ping kostbere sekonden fan it libben ferlern gean, wat, lykas wy witte, net akseptabel is.
  • Transysje monitoring. Dizze metoade makket it makliker om ynformaasje te sammeljen oer brûkersaksjes, wat, fansels, is wat VK brûkt, en tafoegje oan 'e feilige keppeling de id fan' e post wêrfan de oergong waard makke.

Django frijlitte

De optimale oplossing foar alle boppesteande problemen kin in browser-útwreiding wêze. Om foar de hân lizzende redenen falt de kar op Chrome. D'r is in poerbêste ien op 'e hub artikel In artikel wijd oan it skriuwen fan tafoegings foar Chrome.

Om sa'n tafoeging te meitsjen, moatte wy twa bestannen yn in aparte map oanmeitsje: in json-Manifest en in JavaScript-bestân om it aktuele url-adres te kontrolearjen.

Meitsje in Manifest triem

It wichtichste ding dat wy nedich binne is de tastimming te jaan oan de tastimming om mei ljeppers te wurkjen en in útfierber skript ta te jaan:

{
  "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"
  }
}

Meitsje in js-bestân

Alles is hjir ienfâldich: yn it barren neamd as in nije ljepper wurdt oanmakke, foegje wy in kontrôle ta foar it url-adres as it begjint mei "vk.com/away.php", ferfange it dan mei de juste, dy't yn it GET-fersyk is:

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

It gearstallen fan de útwreiding

Nei it meitsjen fan wis dat beide bestannen yn deselde map binne, iepenje Chrome, selektearje it ljepblêd tafoeging en klikje op "Unpackte útwreiding lade". Selektearje yn it finster dat iepent de map fan it skreaune útwreide bestân en klikje op Sammelje. Klear! No binne alle keppelings lykas vk.com/away ferfongen troch de orizjinele.

Yn stee fan in konklúzje

Fansels hat dit soarte stub in protte minsken rêden fan miljoenen frauduleuze siden, lykwols leau ik dat minsken sels it rjocht hawwe om te besluten oft se op in ûnfeilige keppeling klikke of net.
Foar it gemak haw ik it projekt pleatst op GitHub.

Boarne: www.habr.com

Add a comment