window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', versjon: 2, } ;(function () { var w = vindu if (w.LeadBooster) { console.warn('LeadBooster finnes 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 }) }, } } })() Sikkerhet i webapplikasjoner. Target="_blank" sårbarhet - The Codest
The Codest
  • Om oss
  • Tjenester
    • Programvareutvikling
      • Frontend-utvikling
      • Backend-utvikling
    • Staff Augmentation
      • Frontend-utviklere
      • Backend-utviklere
      • Dataingeniører
      • Ingeniører i skyen
      • QA-ingeniører
      • Annet
    • Det rådgivende
      • Revisjon og rådgivning
  • Industrier
    • Fintech og bankvirksomhet
    • E-commerce
    • Adtech
    • Helseteknologi
    • Produksjon
    • Logistikk
    • Bilindustrien
    • IOT
  • Verdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leveransesjef
  • Vårt team
  • Casestudier
  • Vet hvordan
    • Blogg
    • Møter
    • Webinarer
    • Ressurser
Karriere Ta kontakt med oss
  • Om oss
  • Tjenester
    • Programvareutvikling
      • Frontend-utvikling
      • Backend-utvikling
    • Staff Augmentation
      • Frontend-utviklere
      • Backend-utviklere
      • Dataingeniører
      • Ingeniører i skyen
      • QA-ingeniører
      • Annet
    • Det rådgivende
      • Revisjon og rådgivning
  • Verdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leveransesjef
  • Vårt team
  • Casestudier
  • Vet hvordan
    • Blogg
    • Møter
    • Webinarer
    • Ressurser
Karriere Ta kontakt med oss
Pil tilbake GÅ TILBAKE
2021-04-28
Programvareutvikling

Sikkerhet i webapplikasjoner. Target="_blank" sårbarhet

Lukasz Kolko

Bruk av webapplikasjoner er blitt hverdagskost i alle samfunn. Vi forholder oss til dem hver dag. Vi kan si at de omgir oss. Vi bruker dem på jobb, til underholdning og som verktøy for å kommunisere med andre. Ofte er vi som brukere og utviklere ikke klar over hvor mange sikkerhetshull som oppdages hver dag i slike applikasjoner.

Nylig har vi skrevet om sikkerhet i webapplikasjoner når det gjelder XSS-sårbarhet. Denne gangen vil vi rette oppmerksomheten mot en annen fare.

Sårbarheten som diskuteres i denne artikkelen har vært kjent i lang tid, og på grunn av sin enkelhet er den ofte undervurdert eller til og med ukjent av noen utviklere av webapplikasjoner.

Nesten alle webapplikasjoner inneholder lenker som åpnes i en ny fane når man klikker på dem, slik at fanen med den opprinnelige siden ikke lukkes. Dette er en foretrukket oppførsel fordi skaperne ønsker at brukeren skal tilbringe så mye tid i applikasjonen som mulig.

Et angrep som utnytter denne sårbarheten, er såkalt "reverse tabnabbing". Det er et angrep der en side som er lenket fra målsiden, kan erstatte denne siden med for eksempel et phishing-nettsted.

Angrepsscenario

  1. Anta at offeret bruker Facebook, som er kjent for å åpne lenker via target="_blank",
  2. Opprett en falsk viral side,
  3. Lag et phishing-nettsted som ser ut som en påloggingsside på Facebook,
  4. Sett inn nedenstående kode på virussiden, f.eks. via funnet XSS-sårbarhet
    window.opener.location = 'https://phishing-website/facebook.com';
  5. Offeret klikker på lenken på Facebook til den virale siden,
  6. Den virale siden omdirigerer Facebook-fanen til phishing-nettstedet og ber brukeren om å logge på igjen.

Vi kan altså endre den overordnede fanen fra den infiserte målsiden ved hjelp av et vindusobjekt fra Web API. Et angrep innebærer vanligvis at flere oppdagede sårbarheter og phishing-svindel brukes parallelt.

Problemet

Når vi åpner en ny fane i nettleseren ved hjelp av en lenke med target="_blank" attributtet, har vi tilgang til "henviseren" vår fra den nye fanen. Mer spesifikt, til åpner egenskapen til Vindu objektet, som returnerer en referanse til vinduet som åpnet det, vår overordnede side.

Dette skyldes oppførselen til Window.open() funksjon. Med tilgang til dette attributtet kan vi enkelt erstatte den overordnede siden. Merk at noen moderne nettlesere kan gjøre window.opener funksjon i målfanen som null for å forhindre denne oppførselen.

Eksempel på kode

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

Ovenfor kan du se den infiserte lenken som opprinnelig åpner en ny fane med en GitHub-side, men i mellomtiden endrer den vår "overordnede" side til Stackoverflow-nettstedet.

Direkte eksempel

1. HTML-lenker

Legg til rel="noopener noreferrer" til <a> tag.

Den rel attributtet definerer forholdet mellom en lenket ressurs og det aktuelle dokumentet.

noopener forteller nettleseren at den skal navigere til målet uten å gi tilgang til den overordnede som åpnet det. Mål-fanen Window.opener vil være null.

noreferrer forhindrer at nettleseren, når den navigerer til målet, sender adressen eller en hvilken som helst annen verdi som referrer til den overordnede via henviser HTTP-overskrift. Merk at navnet på dette HTTP-overskriften med vilje er feilstavet som "referrer".

2. JavaScript lenker

For JavaScript Window.open funksjon, kan du legge til verdiene noopener og noreferrer i windowFeatures parameteren til Window.open funksjon, men ulike nettlesere kan reagere ulikt, så det anbefales å lage Window.opener som null etter bruk av Window.open() funksjon.

Les mer om dette:

Rails API og CORS. Et snev av bevissthet

Strategier for datahenting i NextJS

7 grunner til at nettbutikken din trenger Magento

Hvis du synes denne artikkelen er interessant, kan du følge Lukasz på Github: https://github.com/twistezo

Relaterte artikler

Programvareutvikling

Bygg fremtidssikre webapper: Innsikt fra The Codests ekspertteam

Oppdag hvordan The Codest utmerker seg når det gjelder å skape skalerbare, interaktive webapplikasjoner med banebrytende teknologi som gir sømløse brukeropplevelser på tvers av alle plattformer. Finn ut hvordan ekspertisen vår driver digital transformasjon og...

THECODEST
Programvareutvikling

Topp 10 Latvia-baserte programvareutviklingsselskaper

I vår nyeste artikkel kan du lese mer om Latvias beste programvareutviklingsselskaper og deres innovative løsninger. Oppdag hvordan disse teknologilederne kan bidra til å løfte virksomheten din.

thecodest
Løsninger for bedrifter og oppskalering

Grunnleggende om Java-programvareutvikling: En guide til vellykket outsourcing

Utforsk denne viktige veiledningen om vellykket outsourcing av Java-programvareutvikling for å øke effektiviteten, få tilgang til ekspertise og drive frem prosjektsuksess med The Codest.

thecodest
Programvareutvikling

Den ultimate guiden til outsourcing i Polen

Den kraftige økningen i outsourcing i Polen er drevet av økonomiske, utdanningsmessige og teknologiske fremskritt, noe som fremmer IT-vekst og et forretningsvennlig klima.

TheCodest
Løsninger for bedrifter og oppskalering

Den komplette guiden til verktøy og teknikker for IT-revisjon

IT-revisjoner sørger for sikre, effektive og kompatible systemer. Les hele artikkelen for å lære mer om viktigheten av dem.

The Codest
Jakub Jakubowicz CTO og medgrunnlegger

Abonner på vår kunnskapsbase og hold deg oppdatert på ekspertisen fra IT-sektoren.

    Om oss

    The Codest - Internasjonalt programvareutviklingsselskap med teknologisentre i Polen.

    Storbritannia - Hovedkvarter

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

    Polen - Lokale teknologisentre

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

      The Codest

    • Hjem
    • Om oss
    • Tjenester
    • Casestudier
    • Vet hvordan
    • Karriere
    • Ordbok

      Tjenester

    • Det rådgivende
    • Programvareutvikling
    • Backend-utvikling
    • Frontend-utvikling
    • Staff Augmentation
    • Backend-utviklere
    • Ingeniører i skyen
    • Dataingeniører
    • Annet
    • QA-ingeniører

      Ressurser

    • Fakta og myter om samarbeid med en ekstern programvareutviklingspartner
    • Fra USA til Europa: Hvorfor velger amerikanske oppstartsbedrifter å flytte til Europa?
    • Sammenligning av Tech Offshore Development Hubs: Tech Offshore Europa (Polen), ASEAN (Filippinene), Eurasia (Tyrkia)
    • Hva er de største utfordringene for CTO-er og CIO-er?
    • The Codest
    • The Codest
    • The Codest
    • Retningslinjer for personver
    • Vilkår for bruk av nettstedet

    Opphavsrett © 2025 av The Codest. Alle rettigheter forbeholdt.

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