window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(funktion () { var w = vindue if (w.LeadBooster) { console.warn('LeadBooster findes allerede') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Sikkerhed i webapps. Target="_blank" sårbarhed - The Codest
Codest
  • Om os
  • Serviceydelser
    • Udvikling af software
      • Frontend-udvikling
      • Backend-udvikling
    • Staff Augmentation
      • Frontend-udviklere
      • Backend-udviklere
      • Dataingeniører
      • Cloud-ingeniører
      • QA-ingeniører
      • Andet
    • Det rådgivende
      • Revision og rådgivning
  • Industrier
    • Fintech og bankvirksomhed
    • E-commerce
    • Adtech
    • Sundhedsteknologi
    • Produktion
    • Logistik
    • Biler
    • IOT
  • Værdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leder af levering
  • Vores team
  • Casestudier
  • Ved hvordan
    • Blog
    • Møder
    • Webinarer
    • Ressourcer
Karriere Tag kontakt til os
  • Om os
  • Serviceydelser
    • Udvikling af software
      • Frontend-udvikling
      • Backend-udvikling
    • Staff Augmentation
      • Frontend-udviklere
      • Backend-udviklere
      • Dataingeniører
      • Cloud-ingeniører
      • QA-ingeniører
      • Andet
    • Det rådgivende
      • Revision og rådgivning
  • Værdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leder af levering
  • Vores team
  • Casestudier
  • Ved hvordan
    • Blog
    • Møder
    • Webinarer
    • Ressourcer
Karriere Tag kontakt til os
Pil tilbage GÅ TILBAGE
2021-04-28
Udvikling af software

Sikkerhed i webapps. Target="_blank" sårbarhed

Lukasz Kolko

At bruge webapplikationer er blevet hverdagskost i alle samfund. Vi beskæftiger os med dem hver dag. Vi kan sige, at de omgiver os. Vi bruger dem på arbejdet, til underholdning og som redskaber til at kommunikere med andre. Ofte er vi som brugere og udviklere ikke klar over, hvor mange sikkerhedshuller der opdages hver dag i sådanne applikationer.

For nylig har vi skrevet om webapplikationssikkerhed, når det gælder XSS-sårbarhed. Denne gang vil vi henlede opmærksomheden på en anden fare.

Sårbarheden, der diskuteres i denne artikel, har været med os i lang tid, og på grund af dens enkelhed er den ofte undervurderet eller endda ukendt af nogle. udviklere af webapplikationer.

Næsten alle webapplikationer indeholder links, som åbner i en ny fane, når der klikkes på dem, så fanen med den oprindelige side ikke lukkes. Dette er en foretrukken adfærd, fordi skaberne ønsker, at brugeren skal bruge så meget tid i applikationen som muligt.

Et angreb, der udnytter denne sårbarhed, er den såkaldte "reverse tabnabbing". Det er et angreb, hvor en side, der er linket til fra målsiden, kan erstatte denne side med f.eks. et phishing-site.

Angrebsscenarie

  1. Antag, at offeret bruger Facebook, som er kendt for at åbne links via target="_blank",
  2. Opret en falsk viral side,
  3. Opret en phishing-hjemmeside, der ligner en Facebook-login-side,
  4. Sæt nedenstående Kode på den virale side, f.eks. via en fundet XSS-sårbarhed
    window.opener.location = 'https://phishing-website/facebook.com';
  5. Offeret klikker på linket på Facebook til den virale side,
  6. Den virale side omdirigerer Facebook-fanen til phishing-webstedet og beder brugeren om at logge ind igen.

Så vi kan ændre den overordnede fane fra den inficerede målside ved hjælp af et vinduesobjekt fra Web API. Et angreb involverer typisk brug af flere opdagede sårbarheder og phishing-svindel parallelt.

Problemet

Når vi åbner en ny fane i browseren ved hjælp af et link med target="_blank" attribut, har vi adgang til vores "referrer" fra den nye fane. Mere specifikt til Åbner egenskab af Vindue objekt, som returnerer en reference til det vindue, der åbnede det, vores overordnede side.

Dette skyldes opførslen af Window.open() funktion. Med adgang til denne attribut kan vi nemt udskifte vores overordnede side. Bemærk, at nogle moderne browsere kan gøre window.opener funktion i målfanen som nul for at forhindre denne adfærd.

Eksempel på kode

<code> <a href="https://github.com" target="_blank">Gå til GitHub - inficeret link</a>
const
 if (link)
   link[0].onclick = () => {
     if (window) window.opener.location = 'https://stackoverflow.com'
   }

Ovenfor kan du se det inficerede link, som oprindeligt åbner en ny fane med en GitHub-side, men i mellemtiden ændrer den vores "overordnede" side til Stackoverflow-siden.

Et levende eksempel

1. HTML-links

Tilføj rel="noopener noreferrer" til <a> tag.

Den rel attributten definerer forholdet mellem en sammenkædet ressource og det aktuelle dokument.

noopener fortæller browseren, at den skal navigere til målet uden at give adgang til den overordnede, der åbnede det. Fanen Mål Vindue.åbner vil være nul.

noreferrer forhindrer, at browseren, når den navigerer til målet, sender adressen eller en anden værdi som referrer til forældrene via Referent HTTP-overskrift. Bemærk, at navnet på denne HTTP-header med vilje er stavet forkert som "referrer".

2. JavaScript Links

Til JavaScript Vindue.åben funktion, kan du tilføje værdierne noopener og noreferrer i windowFeatures parameter i Vindue.åben funktion, men forskellige browsere kan reagere forskelligt, så det anbefales at lave Vindue.åbner som nul efter at have brugt Window.open() funktion.

Læs mere om det:

Rails API og CORS. Et strejf af bevidsthed

Strategier for at hente data i NextJS

7 grunde til, at din webshop har brug for Magento

Hvis du synes, at denne artikel er interessant, så følg Lukasz på Github: https://github.com/twistezo

Relaterede artikler

Udvikling af software

Byg fremtidssikrede webapps: Indsigt fra The Codest's ekspertteam

Oplev, hvordan The Codest udmærker sig ved at skabe skalerbare, interaktive webapplikationer med banebrydende teknologier, der leverer sømløse brugeroplevelser på tværs af alle platforme. Lær, hvordan vores ekspertise driver digital transformation og...

DENKODEST
Udvikling af software

Top 10 Letlands-baserede softwareudviklingsvirksomheder

Læs om Letlands bedste softwareudviklingsvirksomheder og deres innovative løsninger i vores seneste artikel. Find ud af, hvordan disse teknologiledere kan hjælpe med at løfte din virksomhed.

thecodest
Løsninger til virksomheder og scaleups

Grundlæggende om Java-softwareudvikling: En guide til succesfuld outsourcing

Udforsk denne vigtige guide til vellykket outsourcing af Java-softwareudvikling for at forbedre effektiviteten, få adgang til ekspertise og skabe projektsucces med The Codest.

thecodest
Udvikling af software

Den ultimative guide til outsourcing i Polen

Den voldsomme stigning i outsourcing i Polen er drevet af økonomiske, uddannelsesmæssige og teknologiske fremskridt, der fremmer it-vækst og et erhvervsvenligt klima.

TheCodest
Løsninger til virksomheder og scaleups

Den komplette guide til IT-revisionsværktøjer og -teknikker

IT-revisioner sikrer sikre, effektive og kompatible systemer. Lær mere om deres betydning ved at læse hele artiklen.

Codest
Jakub Jakubowicz CTO og medstifter

Tilmeld dig vores vidensbase, og hold dig opdateret om ekspertisen fra it-sektoren.

    Om os

    The Codest - International softwareudviklingsvirksomhed med tech-hubs i Polen.

    Storbritannien - Hovedkvarter

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

    Polen - Lokale teknologiske knudepunkter

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

      Codest

    • Hjem
    • Om os
    • Serviceydelser
    • Casestudier
    • Ved hvordan
    • Karriere
    • Ordbog

      Serviceydelser

    • Det rådgivende
    • Udvikling af software
    • Backend-udvikling
    • Frontend-udvikling
    • Staff Augmentation
    • Backend-udviklere
    • Cloud-ingeniører
    • Dataingeniører
    • Andet
    • QA-ingeniører

      Ressourcer

    • Fakta og myter om at samarbejde med en ekstern softwareudviklingspartner
    • Fra USA til Europa: Hvorfor beslutter amerikanske startups sig for at flytte til Europa?
    • Sammenligning af Tech Offshore-udviklingsknudepunkter: Tech Offshore Europa (Polen), ASEAN (Filippinerne), Eurasien (Tyrkiet)
    • Hvad er de største udfordringer for CTO'er og CIO'er?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Vilkår for brug af hjemmesiden

    Copyright © 2025 af The Codest. Alle rettigheder forbeholdes.

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