window.pipedriveLeadboosterConfig = { base: pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster on jo olemassa') } 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 }) }, } } })() Web-sovellusten turvallisuus. Target="_blank" -haavoittuvuus - The Codest
Codest
  • Tietoa meistä
  • Palvelut
    • Ohjelmistokehitys
      • Frontend-kehitys
      • Backend-kehitys
    • Staff Augmentation
      • Frontend-kehittäjät
      • Backend-kehittäjät
      • Tietoinsinöörit
      • Pilvi-insinöörit
      • QA insinöörit
      • Muut
    • Se neuvoa-antava
      • Tilintarkastus & konsultointi
  • Toimialat
    • Fintech & pankkitoiminta
    • E-commerce
    • Adtech
    • Terveysteknologia
    • Valmistus
    • Logistiikka
    • Autoteollisuus
    • IOT
  • Arvo
    • TOIMITUSJOHTAJA
    • CTO
    • Toimituspäällikkö
  • Tiimimme
  • Tapaustutkimukset
  • Tiedä miten
    • Blogi
    • Tapaamiset
    • Webinaarit
    • Resurssit
Työurat Ota yhteyttä
  • Tietoa meistä
  • Palvelut
    • Ohjelmistokehitys
      • Frontend-kehitys
      • Backend-kehitys
    • Staff Augmentation
      • Frontend-kehittäjät
      • Backend-kehittäjät
      • Tietoinsinöörit
      • Pilvi-insinöörit
      • QA insinöörit
      • Muut
    • Se neuvoa-antava
      • Tilintarkastus & konsultointi
  • Arvo
    • TOIMITUSJOHTAJA
    • CTO
    • Toimituspäällikkö
  • Tiimimme
  • Tapaustutkimukset
  • Tiedä miten
    • Blogi
    • Tapaamiset
    • Webinaarit
    • Resurssit
Työurat Ota yhteyttä
Takaisin nuoli PALAA TAAKSE
2021-04-28
Ohjelmistokehitys

Web-sovellusten turvallisuus. Target="_blank" haavoittuvuus

Lukasz Kolko

Verkkosovellusten käyttämisestä on tullut arkipäivää jokaisessa yhteiskunnassa. Olemme tekemisissä niiden kanssa päivittäin. Voimme sanoa, että ne ympäröivät meitä. Käytämme niitä työssä, viihteessä ja välineinä, joilla kommunikoimme muiden kanssa. Käyttäjinä ja kehittäjinä emme useinkaan ymmärrä, kuinka paljon tietoturva-aukkoja tällaisista sovelluksista löydetään päivittäin.

Olemme hiljattain kirjoittaneet web-sovelluksen turvallisuus XSS-haavoittuvuuden osalta. Tällä kertaa haluamme kiinnittää huomionne toiseen vaaraan.

Tässä asiakirjassa käsitelty haavoittuvuus on ollut olemassa jo pitkään, ja sen yksinkertaisuuden vuoksi sitä usein aliarvioidaan tai se on jopa tuntematon. web-sovellusten kehittäjät.

Lähes kaikki verkkosovellukset sisältävät linkkejä, jotka avautuvat uuteen välilehteen, kun niitä napsautetaan, jotta välilehteä ja alkuperäistä sivua ei suljeta. Tämä on suosittua käytöstä, koska tekijät haluavat, että käyttäjä viettää sovelluksessa mahdollisimman paljon aikaa.

Tätä haavoittuvuutta hyödyntävä hyökkäys on niin sanottu "käänteinen tabnabbing". Se on hyökkäys, jossa kohdesivulta linkitetty sivu pystyy korvaamaan kyseisen sivun esimerkiksi phishing-sivustolla.

Hyökkäysskenaario

  1. Oletetaan, että uhri käyttää Facebookia, joka on tunnettu siitä, että se avaa linkkejä target="_blank" -tekstillä,
  2. Luo väärennetty virussivu,
  3. Luo phishing-sivusto, joka näyttää Facebookin kirjautumissivulta,
  4. Laita alla oleva koodi virussivulla esim. löydetyn XSS-haavoittuvuuden kautta.
    window.opener.location = 'https://phishing-website/facebook.com';
  5. Uhri klikkaa Facebookissa olevaa linkkiä virussivulle,
  6. Virussivu ohjaa Facebook-välilehden phishing-sivustolle, jossa käyttäjää pyydetään kirjautumaan uudelleen.

Voimme siis vaihtaa vanhemman välilehden tartunnan saaneelta kohdesivulta Web API:n ikkunaobjektilla. Tyypillisesti hyökkäyksessä käytetään useita löydettyjä haavoittuvuuksia ja phishing-huijauksia rinnakkain.

Ongelma

Kun avaamme selaimessa uuden välilehden käyttämällä linkkiä, jossa on merkkijono target="_blank" attribuutin avulla voimme käyttää "referreriä" uudelta välilehdeltä. Tarkemmin sanottuna avaaja ominaisuus Ikkuna objekti, joka palauttaa viittauksen ikkunaan, joka avasi sen, eli vanhemman sivun.

Tämä johtuu siitä, että Window.open() toiminto. Kun meillä on pääsy tähän määritteeseen, voimme helposti korvata emosivumme. Huomaa, että jotkut nykyaikaiset selaimet voivat tehdä window.opener toiminto kohde-välilehdellä kuten null estääksesi tämän käyttäytymisen.

Esimerkkikoodi

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

Yllä näet tartunnan saaneen linkin, joka avaa alun perin uuden välilehden GitHub-sivulle, mutta samalla se vaihtaa "vanhemman" sivun Stackoverflow-sivustoon.

Live-esimerkki

1. HTML-linkit

Lisää rel="noopener noreferrer" osoitteeseen <a> tag.

The rel määrite määrittelee linkitetyn resurssin ja nykyisen asiakirjan välisen suhteen.

noopener käskee selainta siirtymään kohteeseen myöntämättä pääsyä sen avanneelle vanhemmalle osapuolelle. Kohde-välilehti Window.opener on null.

noreferrer estää selainta, kun se siirtyy kohteeseen, lähettämästä vanhemmalle osapuolelle osoitetta tai mitä tahansa muuta arvoa referrer-arvona. referer HTTP-otsikko. Huomaa, että tämän HTTP-otsikon nimi on tarkoituksellisesti kirjoitettu väärin "referrer".

2. JavaScript linkit

JavaScript:n osalta Window.open funktio, voit lisätä arvot noopener ja noreferrer vuonna windowFeatures parametri Window.open toiminto, mutta eri selaimet voivat reagoida eri tavalla, joten on suositeltavaa tehdä Window.opener kuten null käytön jälkeen Window.open() toiminto.

Lue lisää:

Rails API ja CORS. Ripaus tietoisuutta

Tiedonhakustrategiat NextJS:ssä

7 syytä, miksi verkkokauppasi tarvitsee Magentoa

Jos tämä artikkeli kiinnostaa sinua, seuraa Lukaszia Githubissa: https://github.com/twistezo

Aiheeseen liittyvät artikkelit

Ohjelmistokehitys

Tulevaisuuden web-sovellusten rakentaminen: The Codest:n asiantuntijatiimin näkemyksiä

Tutustu siihen, miten The Codest loistaa skaalautuvien, interaktiivisten verkkosovellusten luomisessa huipputeknologian avulla ja tarjoaa saumattomia käyttäjäkokemuksia kaikilla alustoilla. Lue, miten asiantuntemuksemme edistää digitaalista muutosta ja liiketoimintaa...

THECODEST
Ohjelmistokehitys

Top 10 Latviassa toimivaa ohjelmistokehitysyritystä

Tutustu Latvian parhaisiin ohjelmistokehitysyrityksiin ja niiden innovatiivisiin ratkaisuihin uusimmassa artikkelissamme. Tutustu siihen, miten nämä teknologiajohtajat voivat auttaa nostamaan liiketoimintaasi.

thecodest
Yritys- ja skaalausratkaisut

Java-ohjelmistokehityksen perusteet: A Guide to Outsourcing Successfully

Tutustu tähän keskeiseen oppaaseen Java-ohjelmistokehityksen onnistuneesta ulkoistamisesta tehokkuuden parantamiseksi, asiantuntemuksen saamiseksi ja projektin onnistumiseksi The Codestin avulla.

thecodest
Ohjelmistokehitys

Perimmäinen opas ulkoistamiseen Puolassa

Ulkoistamisen lisääntyminen Puolassa johtuu taloudellisesta, koulutuksellisesta ja teknologisesta kehityksestä, joka edistää tietotekniikan kasvua ja yritysystävällistä ilmapiiriä.

TheCodest
Yritys- ja skaalausratkaisut

Täydellinen opas IT-tarkastustyökaluihin ja -tekniikoihin

Tietotekniikan tarkastuksilla varmistetaan turvalliset, tehokkaat ja vaatimustenmukaiset järjestelmät. Lue lisää niiden merkityksestä lukemalla koko artikkeli.

Codest
Jakub Jakubowicz teknologiajohtaja ja toinen perustaja

Tilaa tietopankkimme ja pysy ajan tasalla IT-alan asiantuntemuksesta.

    Tietoa meistä

    The Codest - Kansainvälinen ohjelmistokehitysyritys, jolla on teknologiakeskuksia Puolassa.

    Yhdistynyt kuningaskunta - pääkonttori

    • Toimisto 303B, 182-184 High Street North E6 2JA
      Lontoo, Englanti

    Puola - Paikalliset teknologiakeskukset

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Krakova
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsova, Puola

      Codest

    • Etusivu
    • Tietoa meistä
    • Palvelut
    • Tapaustutkimukset
    • Tiedä miten
    • Työurat
    • Sanakirja

      Palvelut

    • Se neuvoa-antava
    • Ohjelmistokehitys
    • Backend-kehitys
    • Frontend-kehitys
    • Staff Augmentation
    • Backend-kehittäjät
    • Pilvi-insinöörit
    • Tietoinsinöörit
    • Muut
    • QA insinöörit

      Resurssit

    • Faktoja ja myyttejä yhteistyöstä ulkoisen ohjelmistokehityskumppanin kanssa
    • Yhdysvalloista Eurooppaan: Miksi amerikkalaiset startup-yritykset päättävät muuttaa Eurooppaan?
    • Tech Offshore -kehityskeskusten vertailu: Tech Offshore Eurooppa (Puola), ASEAN (Filippiinit), Euraasia (Turkki).
    • Mitkä ovat teknologiajohtajien ja tietohallintojohtajien tärkeimmät haasteet?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Verkkosivuston käyttöehdot

    Tekijänoikeus © 2025 by The Codest. Kaikki oikeudet pidätetään.

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