The Codest
  • O nás
  • Služby
    • Vývoj softwaru
      • Vývoj frontendů
      • Vývoj backendu
    • Staff Augmentation
      • Vývojáři frontendů
      • Vývojáři backendu
      • Datoví inženýři
      • Cloudoví inženýři
      • Inženýři QA
      • Další
    • To Advisory
      • Audit a poradenství
  • Odvětví
    • Fintech a bankovnictví
    • E-commerce
    • Adtech
    • Healthtech
    • Výroba
    • Logistika
    • Automobilový průmysl
    • IOT
  • Hodnota za
    • CEO
    • CTO
    • Manažer dodávek
  • Náš tým
  • Case Studies
  • Vědět jak
    • Blog
    • Setkání
    • Webové semináře
    • Zdroje
Kariéra Spojte se s námi
  • O nás
  • Služby
    • Vývoj softwaru
      • Vývoj frontendů
      • Vývoj backendu
    • Staff Augmentation
      • Vývojáři frontendů
      • Vývojáři backendu
      • Datoví inženýři
      • Cloudoví inženýři
      • Inženýři QA
      • Další
    • To Advisory
      • Audit a poradenství
  • Hodnota za
    • CEO
    • CTO
    • Manažer dodávek
  • Náš tým
  • Case Studies
  • Vědět jak
    • Blog
    • Setkání
    • Webové semináře
    • Zdroje
Kariéra Spojte se s námi
Šipka zpět ZPĚT
2021-04-28
Vývoj softwaru

Zabezpečení webových aplikací. Target="_blank" zranitelnost

Lukasz Kolko

Používání webových aplikací se stalo samozřejmostí pro každou společnost. Setkáváme se s nimi každý den. Dá se říci, že nás obklopují. Používáme je v práci, pro zábavu i jako nástroje pro komunikaci s ostatními. Často si jako uživatelé a vývojáři neuvědomujeme, kolik bezpečnostních chyb je v těchto aplikacích každý den objeveno.

Nedávno jsme psali o zabezpečení webových aplikací, pokud jde o zranitelnost XSS.. Tentokrát vás chceme upozornit na další nebezpečí.

Zranitelnost diskutovaná v tomto článku byla s nás po dlouhou dobu a pro svou jednoduchost je často podceňována nebo dokonce neznámá. vývojáři webových aplikací.

Téměř každá webová aplikace obsahuje odkazy, které se po kliknutí otevřou na nové kartě, aby nedošlo k zavření karty s původní stránkou. Jedná se o preferované chování, protože tvůrci chtějí, aby uživatel strávil v aplikaci co nejvíce času.

Útokem, který tuto zranitelnost využívá, je takzvaný "reverzní tabnabbing". Jedná se o útok, při kterém je stránka odkazovaná z cílové stránky schopna nahradit tuto stránku například podvodným webem.

Scénář útoku

  1. Předpokládejme, že oběť používá Facebook, který je známý tím, že otevírá odkazy prostřednictvím target="_blank",
  2. Vytvořte falešnou virální stránku,
  3. Vytvoření podvodné webové stránky, která vypadá jako přihlašovací stránka na Facebooku,
  4. Vložte níže uvedené kód na virové stránce, např. prostřednictvím nalezené zranitelnosti XSS.
    window.opener.location = 'https://phishing-website/facebook.com';
  5. Oběť klikne na odkaz na Facebooku na virovou stránku,
  6. Virová stránka přesměruje kartu Facebook na podvodnou webovou stránku a požádá uživatele o nové přihlášení.

Můžeme tedy změnit nadřazenou kartu z infikované cílové stránky pomocí objektu okna z rozhraní Web API. Obvykle útok zahrnuje souběžné použití několika objevených zranitelností a phishingových podvodů.

Problém

Když otevřeme novou kartu v prohlížeči pomocí odkazu s příznakem target="_blank" atribut, máme přístup k našemu "odkazu" z nové karty. Přesněji řečeno k otvírák vlastnost Okno který vrací odkaz na okno, které jej otevřelo, tedy na naši nadřazenou stránku.

To je způsobeno chováním Window.open() funkce. S přístupem k tomuto atributu můžeme snadno nahradit naši nadřazenou stránku. Všimněte si, že některé moderní prohlížeče mohou window.opener funkce v cílové kartě jako null zabránit tomuto chování.

Příklad kódu

<code> <a href="https://github.com" target="_blank">Přejít na GitHub - infikovaný odkaz</a>
const
 if (link)
   link[0].onclick = () => {
     if (window) window.opener.location = 'https://stackoverflow.com'
   }

Výše můžete vidět infikovaný odkaz, který původně otevře novou kartu se stránkou GitHub, ale mezitím změní naši "rodičovskou" stránku na stránku Stackoverflow.

Živý příklad

1. HTML odkazy

Přidat rel="noopener noreferrer" na <a> tag.

Na stránkách rel atribut definuje vztah mezi propojeným prostředkem a aktuálním dokumentem.

noopener říká prohlížeči, aby přešel k cíli bez udělení přístupu k rodiči, který jej otevřel. Karta cíle Window.opener bude null.

noreferrer zabrání prohlížeči, aby při přechodu na cíl odeslal nadřazenému počítači adresu nebo jinou hodnotu jako odkaz prostřednictvím odkazu. referer Hlavička HTTP. Všimněte si, že název této hlavičky HTTP je záměrně chybně napsán jako "referrer".

2. JavaScript odkazy

Pro JavaScript Window.open můžete přidat hodnoty noopener a noreferrer v windowFeatures parametr Window.open ale různé prohlížeče mohou reagovat různě, proto se doporučuje, abyste Window.opener jako null po použití Window.open() funkce.

Přečtěte si více:

Rozhraní Rails API a CORS. Kousek vědomí

Strategie načítání dat v NextJS

7 důvodů, proč váš internetový obchod potřebuje Magento

Pokud vás tento článek zaujal, sledujte Lukáše na Githubu: https://github.com/twistezo

Související články

Ilustrace zdravotnické aplikace pro chytré telefony s ikonou srdce a rostoucím zdravotním grafem, označená logem The Codest, která představuje digitální zdraví a řešení HealthTech.
Vývoj softwaru

Softwarové vybavení pro zdravotnictví: a případy použití

Nástroje, na které se dnes zdravotnické organizace spoléhají, se v ničem nepodobají papírovým kartám z doby před desítkami let. zdravotnický software dnes podporuje zdravotnické systémy, péči o pacienty a moderní poskytování zdravotní péče v klinických a...

NEJKRÁSNĚJŠÍ
Abstraktní ilustrace klesajícího sloupcového grafu se stoupající šipkou a zlatou mincí symbolizující efektivitu nákladů nebo úspory. V levém horním rohu se zobrazuje logo The Codest se sloganem "In Code We Trust" na světle šedém pozadí.
Vývoj softwaru

Jak rozšířit tým vývojářů bez ztráty kvality produktu

Zvětšujete svůj vývojový tým? Zjistěte, jak růst, aniž byste museli obětovat kvalitu produktu. Tento průvodce se zabývá příznaky, že je čas na škálování, strukturou týmu, najímáním zaměstnanců, vedením a nástroji - a také tím, jak může The Codest...

NEJKRÁSNĚJŠÍ
Vývoj softwaru

Vytváření webových aplikací odolných vůči budoucnosti: postřehy týmu odborníků The Codest

Zjistěte, jak společnost The Codest vyniká při vytváření škálovatelných, interaktivních webových aplikací pomocí nejmodernějších technologií, které poskytují bezproblémové uživatelské prostředí na všech platformách. Zjistěte, jak naše odborné znalosti podporují digitální transformaci a obchodní...

NEJKRÁSNĚJŠÍ
Vývoj softwaru

10 nejlepších lotyšských společností zabývajících se vývojem softwaru

V našem nejnovějším článku se dozvíte o nejlepších lotyšských společnostech zabývajících se vývojem softwaru a jejich inovativních řešeních. Zjistěte, jak mohou tito technologičtí lídři pomoci pozvednout vaše podnikání.

thecodest
Podniková a škálovací řešení

Základy vývoje softwaru v jazyce Java: A Guide to Outsourcing Successfully

Prozkoumejte tuto základní příručku o úspěšném vývoji softwaru outsourcing Java, abyste zvýšili efektivitu, získali přístup k odborným znalostem a dosáhli úspěchu projektu s The Codest.

thecodest

Přihlaste se k odběru naší znalostní databáze a získejte aktuální informace o odborných znalostech z oblasti IT.

    O nás

    The Codest - Mezinárodní společnost zabývající se vývojem softwaru s technologickými centry v Polsku.

    Spojené království - ústředí

    • Kancelář 303B, 182-184 High Street North E6 2JA
      Londýn, Anglie

    Polsko - Místní technologická centra

    • Kancelářský park Fabryczna, Aleja
      Pokoju 18, 31-564 Krakov
    • Brain Embassy, Konstruktorska
      11, 02-673 Varšava, Polsko

      The Codest

    • Home
    • O nás
    • Služby
    • Case Studies
    • Vědět jak
    • Kariéra
    • Slovník

      Služby

    • To Advisory
    • Vývoj softwaru
    • Vývoj backendu
    • Vývoj frontendů
    • Staff Augmentation
    • Vývojáři backendu
    • Cloudoví inženýři
    • Datoví inženýři
    • Další
    • Inženýři QA

      Zdroje

    • Fakta a mýty o spolupráci s externím partnerem pro vývoj softwaru
    • Z USA do Evropy: Proč se americké startupy rozhodly přesídlit do Evropy?
    • Srovnání technických vývojových center v zahraničí: Tech Offshore Evropa (Polsko), ASEAN (Filipíny), Eurasie (Turecko)
    • Jaké jsou hlavní výzvy CTO a CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Copyright © 2026 by The Codest. Všechna práva vyhrazena.

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