Target _blank – Säkerhetsbristen som Facebook valt att inte åtgärda

Tobias Dokken
Skriven av Tobias Dokken, december 12, 2016

Internet utvecklas kontinuerligt och blir hela tiden bättre och bättre. Tyvärr så utvecklas även farorna. I samband med att Internet blivit en allt viktigare del av vår vardag så har vi naturligt nog även blivit mer sårbara. Därför är det viktigt att hålla sig uppdaterad med senaste mjukvaran, senaste hoten och vad man behöver tänka på för att minimera risken att bli utsatt.

Den säkerhetsbristen som jag kommer avhandla i den här artikeln är långt ifrån ny men har alltid varit väldigt underskattad och fram tills nyligen ganska okänd. Det är en brist i en av kärnfunktionerna för en webbsida, att öppna en länk i en ny flik eller nytt fönster.

För er som inte är insatta i hur en länk är uppbyggd så ser den ut så här

<a href=”tobiasdokken.com” title=”Tobias sajt”>Tobias sida</a>

Det är en vanlig länk som går till min sida. Det som blivit standard idag är att de som skapar länkarna vill att, om länken går till en extern sida, länken ska öppnas i en ny flik. Anledningen till det är att man inte vill förlora sina besökare genom att locka dem till andra sidor och därför ser man till att besökaren fortfarande har en flik med ursprungssajtens sida öppen.

Det åstadkommer man genom att lägga till parametern target=”_blank”.

Min exempellänk blir då

<a href=”tobiasdokken.com” title=”Tobias sajt” target=”_blank”>Tobias sida</a>

Det är det här scenariot som orsakar säkerhetsbristen.

Den sidan som länken går till kan väldigt enkelt ändra sidan i ursprungfliken till valfri adress.

Allt som krävs är att sidan har lagt till ett skript

window.opener.location = 'https://valfrisajt.com';

och ursprungsfliken har nu blivit omdirigerad till länken enligt skriptet.

Jag har skapat en liten demosida för att illustrera exakt hur det fungerar. Sidan är visserligen på samma domän men fungerar även när sidan är på andra domäner. Https har ingen påverkan.

Klicka här så kommer en ny flik att öppnas. När du stänger den fliken och kommer tillbaka hit så ser du att adressen ändrats och till viss del även innehållet.


 
Det finns ett par lösningar

Bästa lösningen är att lägga till parametern noopener.

rel=”noopener”

Parametern innebär bland annat att man talar om för webbläsaren att ursprungssidan inte ska gå att ändra (värdet nollställs).

Dessväre så är det få webbläsare idag som har stöd för noopener. Som du kan se i bilden nedan, skärmdump från CanIUse.com, så är det i princip bara Chrome, Opera och Android Browser som parametern fungerar för, men jag vet att det troligtvis kommer introduceras i Firefox inom kort.

Då är alternativa lösningen att använda parametern rel=”noreferrer”.

rel=”noreferrer”

Problemet med noreferrer är att referensen för sidan som länkat inte kommer med, vilket blir ett problem för de som bryr sig om sökmotoroptimering. Med noreferrer kommer informationen om vart besökaren kommit från inte att vara tillgängligt i analysverktyg som till exempel Google Analytics. Eller rättare sagt, det kommer vara tillgängligt men missvisande. Besöket kommer att visas som att det inte finns någon källa.

Ytterligare en alternativt lösning är att lägga till ett skript

var tempWindow = window.open();

tempWindow.opener = null;

Det koden gör är att nollställa värdet för sidan som besökaren kommit från.

Tyvärr är det en fullösning som försämrar prestandan och inte fungerar för alla webbläsare, bland annat Safari.

 

Hur kan det här användas för att skada oss?

Alla är redan medvetna om att man inte ska klicka på okända länkar men det den här bristen innebär är att vi inte ens behöver klicka på den skadliga länken för att drabbas.

Man kan föras vidare till en sida som försöker ge dig virus. Jag skulle inte vara alltför rädd för det, eftersom såna sidor inte blir långvariga och våra antivirusprogram blockar det mesta. Det är givetvis inte roligt, men scenariot är inget nytt. Vi måste oavsett alltid ha i åtanke att vissa sidor är skadliga och därför bör man vara selektiv när man klickar på länkar.

Det allvarliga scenariot är att man förs vidare till en inloggningssida som ser ut exakt som inloggningssidan till ursprungssidan, med enda skillnaden att adressen inte är samma.


Föreställ dig att  du är inloggad på Facebook, via en webbläsare, och klickar på en länk. En ny flik öppnas. När du är färdig med den fliken och går tillbaka ursprungsfliken så ser du att du blivit utloggad från Facebook och därför visas inloggningssidan. Du loggar in på nytt. Nu har du ovetandes precis gett ditt lösenord till en främmande, ondsint, människa.

Det förutsätter att man inte varit uppmärksam på adressfältet, vilket är lätt att missa. Särskilt om man använder mobilen där det inte visas lika tydligt samt man tror sig vara på en sida där man känner sig säker.

Vad gör de stora sajterna åt problemet?

Instagram var snabba med att fixa till sina länkar så att de inte längre går att exploatera.

Twitter har inte lagt till rel=”noreferrer” eller rel=”noopener” och har ännu inte kommenterat ärendet. Däremot så lyckas jag inte återskapa problemet med länkar från deras plattform, det kan ha att göra med att de använder mikrolänkar. Jag ska undersöka lite mer

Facebook tänker inte lösa problemet. Deras argument är att de inte vill blocka möjligheten för webbsidor att se vart deras trafik kommit från och de vill inte använda skript (fullösningen) för att fixa problemet eftersom då försämras upplevelsen för användarna.

Det är ganska förståeligt, eftersom det faktiskt är viktigt att veta vart ens trafik kommer från så att man vet vart det är värt att lägga sina resurser och särskilt de som betalar Facebook måste kunna se att det verkligen ger resultat och att de får vad de betalar för i form av trafik. Samtidigt så utsätter de sina användare för en ökad risk att bli utsatta för cyberbrott.

De har däremot sagt att de försöker komma fram till en bra lösning av problemet med target _blank tillsammans med de som skapar webbläsare.

Vad är viktigt att tänka på?

Det här är ett problem som vi helt enkelt måste acceptera att det är så verkligheten ser ut och vara uppmärksamma på, tills det finns en bra lösning. Länkar med target _blank är alldeles för inbakat i webben så det löser inte mycket av att det finns en parameter som man kan använda. Vem ska in och ändra alla gamla länkar som finns?

Det går inte bara att stänga av funktionen window.opener eftersom det faktiskt finns ett användningsområde. Däremot kan man se över så att hur target _blank tolkas av webbläsarna fixas.

Att kunna omdirigera sidor används bland annat i vissa integrationer med tredje part t.ex. att logga in på en sida via tredjeparten där det är viktigt att komma tillbaka till ursprungssidan när man är färdig.

– När man länkar

E-butiker (egentligen alla sidor med öppen inloggningssida) borde tänka till en extra gång när de använder target _blank för länkar. Man vill inte riskera att ens kunder blir lurade att logga in på en falsk klon av butiken.

– När man klickar på en länk

Man måste helt enkelt lära sig att vara extra vaksam när man klickar på en länk.

Vad tycker du? Borde det här problemet uppmärksammas mer?
Lämna gärna en kommentar!

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *

Related posts

LÄS ÄVEN

Vad är Amazon Go?

2017-02-09

Vad är Amazon Go och hur kommer det revolutionera sättet vi handlar på?

0

Optimera så att din webbsida ser bra ut med stor skärmupplösning

2017-02-07

Varför optimerar man inte webbsidor för större skärmar?

0

Skapar webbsidor lika långsamt som en sköldpadda

2017-01-23

Därför tog det 5 år att skapa min sajt – Sanningen bakom att skapa en webbsida

0

Vad är Web Beacon

2017-01-16

Vad är web beacon och hur hotar det vår personliga integritet?

0

2017-01-16

Hur gör svenska tidningar med utskrifter på webben

0

Skriva ut webbsidor med print style sheet

2017-01-06

Guide till utskrifter av webbsidor med print stylesheet

0

Kinesiska mobilappen WeChat

2016-12-27

Analys av WeChat och Kinas framfart på Internet

0

Därför borde kaklagen smulas sönder

2016-12-20

Därför borde kaklagen smulas sönder

0

Är kaklagen död?

2016-12-19

Är kaklagen död? Granskning av hur myndigheterna implementerat lagen

0

Gå till bloggen
DelaDela Dela på Twitter Dela på LinkedIn Dela på Facebook Dela på Google plus
Kontakta
Nyhetsbrev