(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': data().getTime(),įvykis:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5LHNRP9'); Interneto programų saugumas. Target="_blank" pažeidžiamumas - The Codest
The Codest
  • Apie mus
  • Paslaugos
    • Programinės įrangos kūrimas
      • Priekinės dalies kūrimas
      • Galinės dalies kūrimas
    • Staff Augmentation
      • Priekinės dalies kūrėjai
      • Atgalinės versijos kūrėjai
      • Duomenų inžinieriai
      • Debesų inžinieriai
      • QA inžinieriai
      • Kita
    • Patariamoji tarnyba
      • Auditas ir konsultacijos
  • Pramonės šakos
    • Fintech ir bankininkystė
    • E-commerce
    • Adtech
    • Sveikatos technologijos
    • Gamyba
    • Logistika
    • Automobiliai
    • IOT
  • Vertė už
    • CEO
    • CTO
    • Pristatymo vadybininkas
  • Mūsų komanda
  • Case Studies
  • Sužinokite, kaip
    • Tinklaraštis
    • Susitikimai
    • Interneto seminarai
    • Ištekliai
Karjera Susisiekite su mumis
  • Apie mus
  • Paslaugos
    • Programinės įrangos kūrimas
      • Priekinės dalies kūrimas
      • Galinės dalies kūrimas
    • Staff Augmentation
      • Priekinės dalies kūrėjai
      • Atgalinės versijos kūrėjai
      • Duomenų inžinieriai
      • Debesų inžinieriai
      • QA inžinieriai
      • Kita
    • Patariamoji tarnyba
      • Auditas ir konsultacijos
  • Vertė už
    • CEO
    • CTO
    • Pristatymo vadybininkas
  • Mūsų komanda
  • Case Studies
  • Sužinokite, kaip
    • Tinklaraštis
    • Susitikimai
    • Interneto seminarai
    • Ištekliai
Karjera Susisiekite su mumis
Atgal rodyklė GRĮŽTI ATGAL
2019-04-08
Programinės įrangos kūrimas

Interneto programų saugumas. Target=”_blank” pažeidžiamumas

Lukasz Kolko

Naudotis žiniatinklio programomis tapo įprasta kiekvienai visuomenei. Su jomis susiduriame kiekvieną dieną. Galima sakyti, kad jos mus supa. Naudojame jas darbe, pramogai ir kaip bendravimo su kitais asmenimis priemones. Dažnai kaip naudotojai ir kūrėjai nesuvokiame, kiek daug saugumo spragų kasdien aptinkama tokiose programose.

Neseniai rašėme apie žiniatinklio programų saugumas, kai kalbama apie XSS pažeidžiamumą.. Šį kartą norime atkreipti jūsų dėmesį į kitą pavojų.

Šiame straipsnyje aptariamas pažeidžiamumas buvo su mus ilgą laiką ir dėl savo paprastumo dažnai nepakankamai įvertintas ar net nežinomas. žiniatinklio programų kūrėjai.

Beveik kiekvienas žiniatinklio svetainė programėlėje yra nuorodų, kurias spustelėjus atidaromas naujas skirtukas, kad nebūtų uždarytas skirtukas su pradiniu puslapiu. Tai pageidautinas elgesys, nes kūrėjai nori, kad naudotojas praleistų kuo daugiau laiko programoje.

Atakos, kuriomis pasinaudojama šia spraga, yra vadinamasis “atvirkštinis tabnabingas”. Tai ataka, kai iš tikslinio puslapio susietas puslapis gali pakeisti tą puslapį, pavyzdžiui, sukčiavimo svetaine.

Puolimo scenarijus

  1. Tarkime, auka naudojasi ”Facebook”, kuris yra žinomas dėl nuorodų atidarymo per target="_blank",
  2. Sukurkite netikrą virusinį puslapį,
  3. Sukurkite apgaulingą svetainę, kuri atrodo kaip "Facebook" prisijungimo puslapis,
  4. Įdėkite toliau nurodytą kodas virusiniame puslapyje, pvz., per rastą XSS pažeidžiamumą.
    window.opener.location = 'https://phishing-website/facebook.com';
  5. Nukentėjusysis "Facebook" spusteli nuorodą į virusinį puslapį,
  6. Virusiniame puslapyje "Facebook" skirtukas nukreipiamas į sukčiavimo svetainę, kurioje naudotojo prašoma dar kartą prisijungti.

Taigi, mes galime pakeisti pagrindinį skirtuką iš užkrėsto tikslinio puslapio lango objektu iš Web API. Paprastai atakos metu lygiagrečiai naudojamos kelios aptiktos pažeidžiamosios vietos ir sukčiavimo apgaulės.

Problema

Kai naršyklėje atidarome naują skirtuką naudodami nuorodą su target="_blank" atributą, turime prieigą prie savo “referrer” iš naujo skirtuko. Tiksliau, prie atidarymo įrenginys savybė Langas objektą, kuris grąžina nuorodą į jį atvėrusį langą, t. y. mūsų pagrindinį puslapį.

Taip yra dėl to, kad Window.open() funkcija. Turėdami prieigą prie šio atributo, galime lengvai pakeisti pagrindinį puslapį. Atkreipkite dėmesį, kad kai kurios šiuolaikinės naršyklės gali window.opener funkcija tiksliniame skirtuke kaip null užkirsti kelią tokiam elgesiui.

Kodo pavyzdys

<code> <a href="https://github.com" target="_blank">Eiti į "GitHub" - užkrėsta nuoroda</a>
const
 if (nuoroda)
   link[0].onclick = () => {
     if (window) window.opener.location = 'https://stackoverflow.com'
   }

Viršuje matote užkrėstą nuorodą, kuri iš pradžių atveria naują skirtuką su “GitHub” puslapiu, bet tuo tarpu pakeičia mūsų "motininį" puslapį į "Stackoverflow" svetainę.

Tiesioginis pavyzdys

1. HTML nuorodos

Pridėti rel="noopener noreferrer" į <a> žyma.

Svetainė rel atributas apibrėžia susieto ištekliaus ir dabartinio dokumento ryšį.

noopener nurodo naršyklei pereiti prie tikslo, nesuteikiant prieigos prie jį atidariusio pagrindinio kompiuterio. Tikslinis skirtukas Window.opener bus null.

noreferrer neleidžia naršyklei, kai naršoma į tikslą, siųsti tėvui adresą ar bet kokią kitą reikšmę kaip nuorodą per kreipinys HTTP antraštė. Atkreipkite dėmesį, kad šios HTTP antraštės pavadinimas tyčia neteisingai užrašytas kaip “referrer”.”

2. JavaScript nuorodos

Dėl JavaScript Window.open funkciją, galite pridėti reikšmes noopener ir noreferrer į langasFeatures parametras Window.open funkcija, tačiau skirtingos naršyklės gali reaguoti skirtingai, todėl rekomenduojama Window.opener kaip null panaudojus Window.open() funkcija.

Skaityti daugiau:

Rails API ir CORS. Sąmoningumo brūkšnelis

Duomenų gavimo strategijos "NextJS

7 priežastys, kodėl jūsų internetinei parduotuvei reikia "Magento

Jei šis straipsnis jums įdomus, sekite Lukaszą "Github" svetainėje: https://github.com/twistezo

Susiję straipsniai

Išmaniojo telefono sveikatos priežiūros programėlės su širdies piktograma ir kylančia sveikatos diagrama, pažymėtos The Codest logotipu, iliustracija, vaizduojanti skaitmeninės sveikatos ir sveikatos technologijų sprendimus.
Programinės įrangos kūrimas

Sveikatos priežiūros programinė įranga: Sveikatos priežiūros paslaugos: tipai, naudojimo atvejai

Įrankiai, kuriais šiandien naudojasi sveikatos priežiūros organizacijos, nė iš tolo neprimena prieš kelis dešimtmečius naudotų popierinių kortelių. sveikatos priežiūros programinė įranga dabar padeda sveikatos sistemoms, pacientų priežiūrai ir šiuolaikiniam sveikatos priežiūros paslaugų teikimui klinikinėse ir...

GERIAUSIAS
Abstrakti mažėjančios stulpelinės diagramos su kylančia rodykle ir auksine moneta, simbolizuojančia ekonomiškumą arba taupymą, iliustracija. Viršutiniame kairiajame viršutiniame kampe pavaizduotas The Codest logotipas ir šūkis "In Code We Trust" šviesiai pilkame fone.
Programinės įrangos kūrimas

Kaip padidinti savo Dev komandą neprarandant produkto kokybės

Didinate savo kūrėjų komandą? Sužinokite, kaip augti neprarandant produkto kokybės. Šiame vadove aptariami ženklai, kad atėjo laikas didinti komandą, komandos struktūra, įdarbinimas, vadovavimas ir įrankiai - ir kaip The Codest gali...

GERIAUSIAS
Programinės įrangos kūrimas

Sukurkite ateičiai atsparias žiniatinklio programas: The Codest ekspertų komandos įžvalgos

Sužinokite, kaip The Codest puikiai kuria keičiamo dydžio interaktyvias žiniatinklio programas, naudodama pažangiausias technologijas ir užtikrindama vientisą naudotojų patirtį visose platformose. Sužinokite, kaip mūsų patirtis skatina skaitmeninę transformaciją ir verslo...

GERIAUSIAS
Programinės įrangos kūrimas

10 geriausių Latvijoje įsikūrusių programinės įrangos kūrimo įmonių

Naujausiame mūsų straipsnyje sužinokite apie geriausias Latvijos programinės įrangos kūrimo įmones ir jų inovatyvius sprendimus. Sužinokite, kaip šie technologijų lyderiai gali padėti pakelti jūsų verslo lygį.

thecodest
Įmonių ir didinimo sprendimai

"Java" programinės įrangos kūrimo pagrindai: A Guide to outsourcing Outsourcing Successfully

Išnagrinėkite šį esminį vadovą, kaip sėkmingai outsourcing "Java" programinę įrangą kurti, kad padidintumėte efektyvumą, įgytumėte patirties ir sėkmingai įgyvendintumėte projektus su The Codest.

thecodest

Prenumeruokite mūsų žinių bazę ir būkite nuolat informuoti apie IT sektoriaus patirtį.

    Apie mus

    The Codest - tarptautinė programinės įrangos kūrimo bendrovė, turinti technologijų centrus Lenkijoje.

    Jungtinė Karalystė - būstinė

    • 303B biuras, 182-184 High Street North E6 2JA
      Londonas, Anglija

    Lenkija - vietiniai technologijų centrai

    • Fabryczna biurų parkas, Aleja
      Pokoju 18, 31-564 Krokuva
    • Brain Embassy, Konstruktorska
      11, 02-673 Varšuva, Lenkija

    The Codest

    • Pagrindinis
    • Apie mus
    • Paslaugos
    • Case Studies
    • Sužinokite, kaip
    • Karjera
    • Žodynas

    Paslaugos

    • Patariamoji tarnyba
    • Programinės įrangos kūrimas
    • Galinės dalies kūrimas
    • Priekinės dalies kūrimas
    • Staff Augmentation
    • Atgalinės versijos kūrėjai
    • Debesų inžinieriai
    • Duomenų inžinieriai
    • Kita
    • QA inžinieriai

    Ištekliai

    • Faktai ir mitai apie bendradarbiavimą su išoriniu programinės įrangos kūrimo partneriu
    • Iš JAV į Europą: Kodėl Amerikos startuoliai nusprendžia persikelti į Europą?
    • Technikos plėtros centrų užsienyje palyginimas: Tech Offshore Europa (Lenkija), ASEAN (Filipinai), Eurazija (Turkija)
    • Kokie yra svarbiausi CTO ir CIO iššūkiai?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Autorinės teisės © 2026 The Codest. Visos teisės saugomos.

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