(function(w,d,s,l,i){w[l]=w[l]|||[];w[l].push({'gtm.start': new Date().getTime(),event:'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'); Tīmekļa lietotņu drošība. Target="_blank" ievainojamība - The Codest
The Codest
  • Par mums
  • Pakalpojumi
    • Programmatūras izstrāde
      • Frontend izveide
      • Backend izstrāde
    • Staff Augmentation
      • Frontend izstrādātāji
      • Backend izstrādātāji
      • Datu inženieri
      • Mākoņa inženieri
      • QA inženieri
      • Citi
    • Tā Konsultatīvais dienests
      • Audits un konsultācijas
  • Nozares
    • Fintech un banku darbība
    • E-commerce
    • Adtech
    • Healthtech
    • Ražošana
    • Loģistika
    • Automobiļu nozare
    • IOT
  • Vērtība par
    • CEO
    • CTO
    • Piegādes vadītājs
  • Mūsu komanda
  • Case Studies
  • Zināt, kā
    • Blogs
    • Tikšanās
    • Tiešsaistes semināri
    • Resursi
Karjera Sazinieties ar mums
  • Par mums
  • Pakalpojumi
    • Programmatūras izstrāde
      • Frontend izveide
      • Backend izstrāde
    • Staff Augmentation
      • Frontend izstrādātāji
      • Backend izstrādātāji
      • Datu inženieri
      • Mākoņa inženieri
      • QA inženieri
      • Citi
    • Tā Konsultatīvais dienests
      • Audits un konsultācijas
  • Vērtība par
    • CEO
    • CTO
    • Piegādes vadītājs
  • Mūsu komanda
  • Case Studies
  • Zināt, kā
    • Blogs
    • Tikšanās
    • Tiešsaistes semināri
    • Resursi
Karjera Sazinieties ar mums
Atpakaļ bultiņa ATGRIEZTIES ATPAKAĻ
2019-04-08
Programmatūras izstrāde

Tīmekļa lietotņu drošība. Target=”_blank” ievainojamība

Lukāšs Kolko

Tīmekļa lietojumprogrammu izmantošana ir kļuvusi par ikdienišķu parādību ikvienā sabiedrībā. Mēs ar tām saskaramies katru dienu. Var teikt, ka tās mūs ieskauj. Mēs tās izmantojam darbā, izklaidei un kā rīkus saziņai ar citiem. Bieži vien mēs kā lietotāji un izstrādātāji neapzināmies, cik daudz drošības ievainojamību šādās lietojumprogrammās tiek atklāts katru dienu.

Nesen mēs esam rakstījuši par tīmekļa lietojumprogrammu drošība, kad runa ir par XSS ievainojamību.. Šoreiz mēs vēlamies pievērst jūsu uzmanību citam apdraudējumam.

Šajā dokumentā aplūkotā neaizsargātība ir ar mums ilgu laiku, un tās vienkāršības dēļ daži to bieži vien nenovērtē vai pat nezina. tīmekļa lietojumprogrammu izstrādātāji.

Gandrīz katrs tīmekļa vietne lietojumprogrammā ir saites, uz kurām noklikšķinot tiek atvērta jauna cilne, lai netiktu aizvērta cilne ar sākotnējo lapu. Tā ir vēlama uzvedība, jo izstrādātāji vēlas, lai lietotājs pavadītu pēc iespējas vairāk laika lietojumprogrammā.

Uzbrukums, kas izmanto šo ievainojamību, ir tā sauktais “reversais tabnabings”. Tas ir uzbrukums, kad no mērķa lapas saistītā lapa var aizstāt šo lapu ar, piemēram, pikšķerēšanas vietni.

Uzbrukuma scenārijs

  1. Pieņemsim, ka upuris izmanto Facebook, kas ir pazīstams ar to, ka atver saites, izmantojot target=”_blank”,
  2. Izveidojiet viltus virālo lapu,
  3. Izveidojiet pikšķerēšanas vietni, kas izskatās kā Facebook pierakstīšanās lapa,
  4. Ievietojiet tālāk norādīto kods vīrusa lapā, piemēram, izmantojot atrastu XSS ievainojamību.
    window.opener.location = 'https://phishing-website/facebook.com';
  5. Upuris noklikšķina uz saites Facebook vietnē, lai nokļūtu uz vīrusa lapu,
  6. Vīrusa lapa novirza Facebook cilni uz pikšķerēšanas tīmekļa vietni, aicinot lietotāju vēlreiz pierakstīties.

Tātad, mēs varam mainīt vecāku cilni no inficētās mērķa lapas, izmantojot loga objektu no Web API. Parasti uzbrukumā paralēli tiek izmantotas vairākas atklātās ievainojamības un pikšķerēšanas metodes.

Problēma

Kad pārlūkprogrammā atveram jaunu cilni, izmantojot saiti ar saiti ar target="_blank" atribūtu, mums ir piekļuve mūsu “novirzītājam” no jaunās cilnes. Precīzāk, uz Atvērējs īpašība Logs objektu, kas atgriež atsauci uz logu, kurš to atvēra, mūsu vecāku lapu.

Tas ir saistīts ar to, ka Window.open() funkcija. Izmantojot šo atribūtu, mēs varam viegli nomainīt vecāku lapu. Ņemiet vērā, ka dažas mūsdienu pārlūkprogrammas var logs.opener funkcija mērķa cilnē kā null lai novērstu šādu uzvedību.

Koda piemērs

<code> <a href="https://github.com" target="_blank">Iet uz GitHub - inficētā saite</a>
const
 if (link)
   link[0].onclick = () => { {
     if (window) window.opener.location = 'https://stackoverflow.com'
   }

Virs varat redzēt inficēto saiti, kas sākotnēji atver jaunu cilni ar GitHub lapu, bet tikmēr tā maina mūsu “vecāku” lapu uz Stackoverflow vietni.

Tiešraides piemērs

1. HTML saites

Pievienot rel="noopener noreferrer" uz <a> birka.

Portāls rel atribūts nosaka saikni starp saistīto resursu un pašreizējo dokumentu.

noopener uzdod pārlūkprogrammai pārvietoties uz mērķi, nepiešķirot piekļuvi vecākajam lietotājam, kas to atvēris. Mērķa cilne Window.opener būs null.

noreferrer neļauj pārlūkprogrammai, pārejot uz mērķi, sūtīt vecākam adresi vai jebkuru citu vērtību kā atsauces numuru, izmantojot referer HTTP galvene. Ņemiet vērā, ka šis HTTP galvenes nosaukums ir apzināti nepareizi rakstīts kā “referrer”.”

2. JavaScript saites

Attiecībā uz JavaScript Window.open funkciju, varat pievienot vērtības noopener un noreferrer in the logsFeatures parametrs Window.open funkcija, taču dažādās pārlūkprogrammās var būt atšķirīga reakcija, tāpēc ir ieteicams veikt Window.opener kā null pēc Window.open() funkcija.

Lasīt vairāk:

Rails API un CORS. Apziņas piesitiens

Datu iegūšanas stratēģijas NextJS

7 iemesli, kāpēc jūsu interneta veikalam nepieciešams Magento

Ja šis raksts jums šķiet interesants, sekojiet Lukāšam Github vietnē: https://github.com/twistezo

Saistītie raksti

Ilustrācija viedtālruņa veselības aprūpes lietotnei ar sirds ikonu un pieaugošo veselības diagrammu, kas apzīmēta ar The Codest logotipu, kurš pārstāv digitālās veselības un HealthTech risinājumus.
Programmatūras izstrāde

Veselības aprūpes programmatūra: Mārketinga programmatūra: veidi, izmantošanas gadījumi

Šodien veselības aprūpes organizāciju rīcībā esošie rīki vairs neatgādina papīra diagrammas, kas tika izmantotas pirms vairākiem gadu desmitiem. veselības aprūpes programmatūra tagad atbalsta veselības aprūpes sistēmas, pacientu aprūpi un mūsdienīgu veselības aprūpes sniegšanu klīniskajās un...

TĀKĀDĒJAIS
Abstrakta ilustrācija ar lejupejošu joslu diagrammu ar augošu bultiņu un zelta monētu, kas simbolizē izmaksu efektivitāti vai ietaupījumus. Augšējā kreisajā stūrī redzams The Codest logotips ar saukli "In Code We Trust" uz gaiši pelēka fona.
Programmatūras izstrāde

Kā paplašināt izstrādātāju komandu, nezaudējot produkta kvalitāti

Palielināt izstrādātāju komandu? Uzziniet, kā augt, nezaudējot produkta kvalitāti. Šajā rokasgrāmatā aplūkotas pazīmes, kas liecina, ka ir pienācis laiks paplašināt komandu, komandas struktūra, pieņemšana darbā, vadība un rīki, kā arī tas, kā The Codest var...

TĀKĀDĒJAIS
Programmatūras izstrāde

Uz nākotni noturīgu tīmekļa lietojumprogrammu veidošana: The Codest ekspertu komandas ieskats

Uzziniet, kā The Codest izceļas mērogojamu, interaktīvu tīmekļa lietojumprogrammu izveidē, izmantojot modernākās tehnoloģijas un nodrošinot viengabalainu lietotāja pieredzi visās platformās. Uzziniet, kā mūsu zināšanas veicina digitālo transformāciju un biznesa...

TĀKĀDĒJAIS
Programmatūras izstrāde

Top 10 Latvijā bāzēti programmatūras izstrādes uzņēmumi

Mūsu jaunākajā rakstā uzziniet vairāk par Latvijas labākajiem programmatūras izstrādes uzņēmumiem un to inovatīvajiem risinājumiem. Uzziniet, kā šie tehnoloģiju līderi var palīdzēt uzlabot jūsu biznesu.

thecodest
Uzņēmumu un mērogošanas risinājumi

Java programmatūras izstrādes pamati: A Guide to Outsourcing Successfully

Izpētiet šo būtisko rokasgrāmatu par veiksmīgu outsourcing Java programmatūras izstrādi, lai uzlabotu efektivitāti, piekļūtu speciālajām zināšanām un sekmīgi īstenotu projektus ar The Codest.

thecodest

Abonējiet mūsu zināšanu bāzi un saņemiet jaunāko informāciju par IT nozares pieredzi.

    Par mums

    The Codest - starptautisks programmatūras izstrādes uzņēmums ar tehnoloģiju centriem Polijā.

    Apvienotā Karaliste - Galvenā mītne

    • 303B birojs, 182-184 High Street North E6 2JA
      Londona, Anglija

    Polija - Vietējie tehnoloģiju centri

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Krakova
    • Brain Embassy, Konstruktorska
      11, 02-673 Varšava, Polija

    The Codest

    • Sākums
    • Par mums
    • Pakalpojumi
    • Case Studies
    • Zināt, kā
    • Karjera
    • Vārdnīca

    Pakalpojumi

    • Tā Konsultatīvais dienests
    • Programmatūras izstrāde
    • Backend izstrāde
    • Frontend izveide
    • Staff Augmentation
    • Backend izstrādātāji
    • Mākoņa inženieri
    • Datu inženieri
    • Citi
    • QA inženieri

    Resursi

    • Fakti un mīti par sadarbību ar ārējo programmatūras izstrādes partneri
    • No ASV uz Eiropu: Kāpēc Amerikas jaunuzņēmumi nolemj pārcelties uz Eiropu?
    • Tehnoloģiju ārzonas attīstības centru salīdzinājums: Tech Offshore Eiropa (Polija), ASEAN (Filipīnas), Eirāzija (Turcija)
    • Kādi ir galvenie CTO un CIO izaicinājumi?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Autortiesības © 2026 The Codest. Visas tiesības aizsargātas.

    lvLatvian
    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 lt_LTLithuanian is_ISIcelandic lvLatvian