window.pipedriveLeadboosterConfig = { base: leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster on juba olemas') } 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 }) }, } } })() Veebirakenduse turvalisus. Target="_blank" haavatavus - The Codest
The Codest
  • Meie kohta
  • Teenused
    • Tarkvaraarendus
      • Frontend arendus
      • Backend arendus
    • Staff Augmentation
      • Frontend arendajad
      • Backend arendajad
      • Andmeinsenerid
      • Pilveinsenerid
      • QA insenerid
      • Muud
    • See nõuandev
      • Audit ja nõustamine
  • Tööstusharud
    • Fintech & pangandus
    • E-commerce
    • Adtech
    • Healthtech
    • Tootmine
    • Logistika
    • Autotööstus
    • IOT
  • Väärtus
    • CEO
    • CTO
    • Tarnejuht
  • Meie meeskond
  • Case Studies
  • Tea kuidas
    • Blogi
    • Kohtumised
    • Veebiseminarid
    • Ressursid
Karjäärivõimalused Võtke ühendust
  • Meie kohta
  • Teenused
    • Tarkvaraarendus
      • Frontend arendus
      • Backend arendus
    • Staff Augmentation
      • Frontend arendajad
      • Backend arendajad
      • Andmeinsenerid
      • Pilveinsenerid
      • QA insenerid
      • Muud
    • See nõuandev
      • Audit ja nõustamine
  • Väärtus
    • CEO
    • CTO
    • Tarnejuht
  • Meie meeskond
  • Case Studies
  • Tea kuidas
    • Blogi
    • Kohtumised
    • Veebiseminarid
    • Ressursid
Karjäärivõimalused Võtke ühendust
Tagasi nool TAGASI
2021-04-28
Tarkvaraarendus

Veebirakenduse turvalisus. Target="_blank" haavatavus

Lukasz Kolko

Veebirakenduste kasutamine on muutunud iga ühiskonna jaoks tavaliseks. Me tegeleme nendega iga päev. Võime öelda, et nad ümbritsevad meid. Me kasutame neid tööl, meelelahutuseks ja teistega suhtlemise vahendina. Sageli ei saa me kasutajatena ja arendajatena aru, kui palju turvaauke sellistes rakendustes iga päev avastatakse.

Hiljuti oleme kirjutanud veebirakenduse turvalisus, kui tegemist on XSS haavatavusega. Seekord tahame pöörata teie tähelepanu veel ühele ohule.

Käesolevas dokumendis käsitletav haavatavus on olnud meiega juba pikka aega ja selle lihtsuse tõttu on seda sageli alahinnatud või isegi teadmata. veebirakenduse arendajad.

Peaaegu iga veebirakendus sisaldab linke, millele klõpsates avaneb uus vahekaart, et mitte sulgeda vahekaarti koos esialgse lehega. See on eelistatud käitumine, sest loojad soovivad, et kasutaja veedaks rakenduses võimalikult palju aega.

Rünnak, mis kasutab seda haavatavust ära, on niinimetatud "reverse tabnabbing". See on rünnak, kus sihtlehega seotud lehekülg on võimeline asendama selle lehe näiteks andmepüügilehega.

Rünnaku stsenaarium

  1. Oletame, et ohver kasutab Facebooki, mis on tuntud linkide avamise poolest target="_blank" kaudu,
  2. Loo võltsitud viiruslik lehekülg,
  3. Looge andmepüügi veebisait, mis näeb välja nagu Facebooki sisselogimisleht,
  4. Pange alljärgnevad kood viiruslikul lehel nt leitud XSS haavatavuse kaudu
    window.opener.location = 'https://phishing-website/facebook.com';
  5. Ohver klõpsab Facebookis viirusliku lehe lingile,
  6. Viiruslik leht suunab Facebooki vahekaardil ümber andmepüügi veebisaidile, kus palutakse kasutajal uuesti sisse logida.

Niisiis, me saame muuta vanema vahekaardi nakatunud sihtlehe akna objekti Web API. Tavaliselt kasutatakse rünnaku puhul paralleelselt mitut avastatud haavatavust ja andmepüügikelmusi.

Probleem

Kui me avame brauseris uue vahekaardi, kasutades linki koos target="_blank" atribuuti, on meil juurdepääs meie "viitajale" uuelt vahekaardilt. Täpsemalt öeldes, et avaja omadus Aken objekt, mis tagastab viite aknale, mis avas selle, meie vanemlehe.

See on tingitud käitumisest Window.open() funktsioon. Juurdepääsuga sellele atribuudile saame hõlpsasti asendada oma vanemlehe. Pange tähele, et mõned moodsad brauserid võivad teha window.opener funktsioon sihtkaardil kui null selle käitumise vältimiseks.

Näidiskood

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

Ülal näete nakatunud linki, mis algselt avab uue vahekaardi GitHubi lehega, kuid vahepeal muudab meie "vanema" lehe Stackoverflow'i saidiks.

Elus näide

1. HTML lingid

Lisa rel="noopener noreferrer" et <a> silt.

The rel atribuut määratleb lingitud ressursi ja praeguse dokumendi vahelise seose.

noopener ütleb brauserile, et ta navigeeriks sihtmärgile, andmata ligipääsu selle avanud vanemettevõttele. Eesmärgi vahekaart Window.opener on null.

noreferrer hoiab ära, et brauser saadab sihtkohale navigeerimisel vanemale aadressi või mis tahes muu väärtuse referrerina läbi referer HTTP päis. Pange tähele, et selle HTTP-pealkirja nimi on tahtlikult valesti kirjutatud kui "referrer".

2. JavaScript lingid

JavaScript puhul Window.open funktsiooni, saate lisada väärtused noopener ja noreferrer aastal windowFeatures parameeter Window.open funktsioon, kuid erinevad brauserid võivad reageerida erinevalt, seega on soovitatav teha Window.opener nagu null pärast seda, kui on kasutatud Window.open() funktsioon.

Loe edasi:

Rails API ja CORS. Riputus teadvusest

NextJS-i andmete hankimise strateegiad

7 põhjust, miks teie veebipood vajab Magentot

Kui see artikkel tundub teile huvitav, jälgige Lukasz'i Githubis: https://github.com/twistezo

Seotud artiklid

Tarkvaraarendus

Tulevikukindlate veebirakenduste loomine: The Codest ekspertide meeskonna ülevaade

Avastage, kuidas The Codest paistab skaleeritavate, interaktiivsete veebirakenduste loomisel silma tipptehnoloogiatega, mis pakuvad sujuvat kasutajakogemust kõigil platvormidel. Saate teada, kuidas meie eksperditeadmised aitavad kaasa digitaalsele ümberkujundamisele ja äritegevusele...

THECODEST
Tarkvaraarendus

Top 10 Lätis asuvat tarkvaraarendusettevõtet

Tutvu Läti parimate tarkvaraarendusettevõtete ja nende innovaatiliste lahendustega meie viimases artiklis. Avastage, kuidas need tehnoloogiajuhid saavad aidata teie äri edendada.

thecodest
Enterprise & Scaleups lahendused

Java tarkvaraarenduse põhitõed: A Guide to Outsourcing Successfully

Tutvuge selle olulise juhendiga, kuidas edukalt outsourcing Java tarkvara arendada, et suurendada tõhusust, pääseda ligi eksperditeadmistele ja edendada projekti edu The Codest abil.

thecodest
Tarkvaraarendus

Ülim juhend Poola allhanke kohta

outsourcing kasv Poolas on tingitud majanduslikust, hariduslikust ja tehnoloogilisest arengust, mis soodustab IT kasvu ja ettevõtlussõbralikku kliimat.

TheCodest
Enterprise & Scaleups lahendused

Täielik juhend IT-auditi vahendite ja tehnikate kohta

IT-auditid tagavad turvalised, tõhusad ja nõuetele vastavad süsteemid. Lisateavet nende tähtsuse kohta leiate kogu artiklist.

The Codest
Jakub Jakubowicz CTO & kaasasutajad

Tellige meie teadmistebaas ja jääge kursis IT-sektori eksperditeadmistega.

    Meie kohta

    The Codest - rahvusvaheline tarkvaraarendusettevõte, mille tehnoloogiakeskused asuvad Poolas.

    Ühendkuningriik - peakorter

    • Büroo 303B, 182-184 High Street North E6 2JA
      London, Inglismaa

    Poola - kohalikud tehnoloogiakeskused

    • Fabryczna büroopark, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varssavi, Poola

      The Codest

    • Kodu
    • Meie kohta
    • Teenused
    • Case Studies
    • Tea kuidas
    • Karjäärivõimalused
    • Sõnastik

      Teenused

    • See nõuandev
    • Tarkvaraarendus
    • Backend arendus
    • Frontend arendus
    • Staff Augmentation
    • Backend arendajad
    • Pilveinsenerid
    • Andmeinsenerid
    • Muud
    • QA insenerid

      Ressursid

    • Faktid ja müüdid koostööst välise tarkvaraarenduspartneriga
    • USAst Euroopasse: Miks otsustavad Ameerika idufirmad Euroopasse ümber asuda?
    • Tech Offshore arenduskeskuste võrdlus: Euroopa (Poola), ASEAN (Filipiinid), Euraasia (Türgi).
    • Millised on CTO ja CIOde peamised väljakutsed?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Copyright © 2025 by The Codest. Kõik õigused kaitstud.

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