window.pipedriveLeadboosterConfig = { bas: 'leadbooster-chat.pipedrive.com', företagId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(funktion () { var w = fönster if (w.LeadBooster) { console.warn('LeadBooster finns redan') } annars { w.LeadBooster = { q: [], on: funktion (n, h) { this.q.push({ t: "o", n: n, h: h }) }, trigger: funktion (n) { this.q.push({ t: 't', n: n }) }, } } })() Säkerhet i webbapplikationer. Sårbarhet i Target="_blank" - The Codest
Codest
  • Om oss
  • Tjänster
    • Utveckling av programvara
      • Frontend-utveckling
      • Backend-utveckling
    • Staff Augmentation
      • Frontend-utvecklare
      • Backend-utvecklare
      • Dataingenjörer
      • Ingenjörer inom molntjänster
      • QA-ingenjörer
      • Övriga
    • Det rådgivande
      • Revision och rådgivning
  • Industrier
    • Fintech & bankverksamhet
    • E-commerce
    • Adtech
    • Hälsoteknik
    • Tillverkning
    • Logistik
    • Fordon
    • IOT
  • Värde för
    • VD OCH KONCERNCHEF
    • CTO
    • Leveranschef
  • Vårt team
  • Fallstudier
  • Vet hur
    • Blogg
    • Möten
    • Webbinarier
    • Resurser
Karriär Ta kontakt med oss
  • Om oss
  • Tjänster
    • Utveckling av programvara
      • Frontend-utveckling
      • Backend-utveckling
    • Staff Augmentation
      • Frontend-utvecklare
      • Backend-utvecklare
      • Dataingenjörer
      • Ingenjörer inom molntjänster
      • QA-ingenjörer
      • Övriga
    • Det rådgivande
      • Revision och rådgivning
  • Värde för
    • VD OCH KONCERNCHEF
    • CTO
    • Leveranschef
  • Vårt team
  • Fallstudier
  • Vet hur
    • Blogg
    • Möten
    • Webbinarier
    • Resurser
Karriär Ta kontakt med oss
Pil tillbaka GÅ TILLBAKA
2021-04-28
Utveckling av programvara

Säkerhet i webbapplikationer. Sårbarhet med mål="_blank"

Lukasz Kolko

Att använda webbapplikationer har blivit en självklarhet i alla samhällen. Vi hanterar dem varje dag. Man kan säga att de omger oss. Vi använder dem i arbetet, för underhållning och som verktyg för att kommunicera med andra. Ofta inser vi som användare och utvecklare inte hur många säkerhetsproblem som upptäcks varje dag i sådana applikationer.

Nyligen har vi skrivit om säkerhet för webbapplikationer när det gäller XSS-sårbarhet. Den här gången vill vi uppmärksamma er på en annan fara.

Den sårbarhet som diskuteras i detta dokument har funnits länge och på grund av sin enkelhet underskattas den ofta eller är till och med okänd av vissa utvecklare av webbapplikationer.

Nästan alla webbapplikationer innehåller länkar som, när man klickar på dem, öppnas i en ny flik för att inte stänga fliken med den ursprungliga sidan. Detta är ett önskat beteende eftersom skaparna vill att användaren ska tillbringa så mycket tid som möjligt i applikationen.

En attack som utnyttjar denna sårbarhet är så kallad "reverse tabnabbing". Det är en attack där en sida som är länkad från målsidan kan ersätta den sidan med till exempel en phishing-sida.

Scenario för attack

  1. Anta att offret använder Facebook, som är känt för att öppna länkar via target="_blank",
  2. Skapa en falsk viral sida,
  3. Skapa en nätfiskewebbplats som ser ut som en inloggningssida på Facebook,
  4. Sätt in nedanstående kod på virussidan, t.ex. via en funnen XSS-sårbarhet
    window.opener.location = "https://phishing-website/facebook.com";
  5. Offret klickar på länken på Facebook till den virala sidan,
  6. Den virala sidan omdirigerar Facebook-fliken till phishing-webbplatsen och ber användaren att logga in igen.

Så vi kan ändra den överordnade fliken från den infekterade målsidan med hjälp av ett fönsterobjekt från Web API. Vanligtvis innebär en attack att man använder flera upptäckta sårbarheter och phishing-bedrägerier parallellt.

Problemet

När vi öppnar en ny flik i webbläsaren med hjälp av en länk med mål="_blank" attribut har vi tillgång till vår "referrer" från den nya fliken. Mer specifikt, till öppnare egenskapen hos Fönster objekt, som returnerar en referens till fönstret som öppnade det, vår överordnade sida.

Detta beror på beteendet hos Fönster.öppna() funktion. Med tillgång till detta attribut kan vi enkelt ersätta vår föräldrasida. Observera att vissa moderna webbläsare kan göra fönster.öppnare funktion i målfliken som noll för att förhindra detta beteende.

Exempel på kod

<code> <a href="https://github.com" target="_blank">Gå till GitHub - infekterad länk</a>
konst
 if (länk)
   link[0].onclick = () => {
     if (window) window.opener.location = 'https://stackoverflow.com'
   }

Ovan kan du se den infekterade länken som ursprungligen öppnar en ny flik med en GitHub-sida men under tiden ändrar den vår "överordnade" sida till Stackoverflow-webbplatsen.

Live exempel

1. HTML-länkar

Lägg till rel="noopener noreferrer" till <a> tagg.

Den rel attributet definierar förhållandet mellan en länkad resurs och det aktuella dokumentet.

noopener säger till webbläsaren att navigera till målet utan att ge åtkomst till den förälder som öppnade det. Fliken Mål Fönsteröppnare kommer att vara noll.

noreferrer förhindrar att webbläsaren, när den navigerar till målet, skickar adressen eller något annat värde som referrer till föräldern via referent HTTP-rubrik. Observera att namnet på detta HTTP-huvud avsiktligt är felstavat som "referrer".

2. JavaScript Länkar

För JavaScript Fönster.öppna funktionen kan du lägga till värdena noopener och noreferrer i fönsterFunktioner parametern för Fönster.öppna funktion men olika webbläsare kan reagera olika så det rekommenderas att göra Fönsteröppnare som noll efter användning Fönster.öppna() funktion.

Läs mer på engelska:

Rails API & CORS. Ett stänk av medvetenhet

Strategier för datahämtning i NextJS

7 skäl till varför din webbutik behöver Magento

Om du tycker att den här artikeln är intressant kan du följa Lukasz på Github: https://github.com/twistezo

Relaterade artiklar

Utveckling av programvara

Bygg framtidssäkrade webbappar: Insikter från The Codest:s expertteam

Upptäck hur The Codest utmärker sig genom att skapa skalbara, interaktiva webbapplikationer med banbrytande teknik som ger sömlösa användarupplevelser på alla plattformar. Läs om hur vår expertis driver digital omvandling och affärsutveckling...

DEKODEST
Utveckling av programvara

Topp 10 Lettlandsbaserade mjukvaruutvecklingsföretag

Läs mer om Lettlands främsta mjukvaruutvecklingsföretag och deras innovativa lösningar i vår senaste artikel. Upptäck hur dessa teknikledare kan hjälpa till att lyfta ditt företag.

thecodest
Lösningar för företag och uppskalningsföretag

Java Software Development Essentials: En guide till framgångsrik outsourcing

Utforska denna viktiga guide om framgångsrik outsourcing av Java-programvaruutveckling för att förbättra effektiviteten, få tillgång till expertis och driva projektframgång med The Codest.

thecodest
Utveckling av programvara

Den ultimata guiden till outsourcing i Polen

Den kraftiga ökningen av outsourcing i Polen drivs av ekonomiska, utbildningsmässiga och tekniska framsteg, vilket främjar IT-tillväxt och ett företagsvänligt klimat.

TheCodest
Lösningar för företag och uppskalningsföretag

Den kompletta guiden till verktyg och tekniker för IT-revision

IT-revisioner säkerställer säkra, effektiva och kompatibla system. Läs mer om hur viktiga de är genom att läsa hela artikeln.

Codest
Jakub Jakubowicz CTO och medgrundare

Prenumerera på vår kunskapsbas och håll dig uppdaterad om expertisen från IT-sektorn.

    Om oss

    The Codest - Internationellt mjukvaruutvecklingsföretag med teknikhubbar i Polen.

    Förenade kungariket - Huvudkontor

    • Kontor 303B, 182-184 High Street North E6 2JA
      London, England

    Polen - Lokala tekniknav

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Warszawa, Polen

      Codest

    • Hem
    • Om oss
    • Tjänster
    • Fallstudier
    • Vet hur
    • Karriär
    • Ordbok

      Tjänster

    • Det rådgivande
    • Utveckling av programvara
    • Backend-utveckling
    • Frontend-utveckling
    • Staff Augmentation
    • Backend-utvecklare
    • Ingenjörer inom molntjänster
    • Dataingenjörer
    • Övriga
    • QA-ingenjörer

      Resurser

    • Fakta och myter om att samarbeta med en extern partner för mjukvaruutveckling
    • Från USA till Europa: Varför väljer amerikanska startup-företag att flytta till Europa?
    • Jämförelse av Tech Offshore Development Hubs: Tech Offshore Europa (Polen), ASEAN (Filippinerna), Eurasien (Turkiet)
    • Vilka är de största utmaningarna för CTO:er och CIO:er?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Användarvillkor för webbplatsen

    Copyright © 2025 av The Codest. Alla rättigheter reserverade.

    sv_SESwedish
    en_USEnglish de_DEGerman da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek sv_SESwedish