window.pipedriveLeadboosterConfig = { basis: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', versie: 2, } ;(functie () { var w = venster als (w.LeadBooster) { console.warn('LeadBooster bestaat al') } anders { w.LeadBooster = { q: [], on: functie (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: functie (n) { this.q.push({ t: 't', n: n }) }, } } })() Beveiliging van webapps. Target="_blank" kwetsbaarheid - The Codest
The Codest
  • Over ons
  • Diensten
    • Software Ontwikkeling
      • Frontend ontwikkeling
      • Backend ontwikkeling
    • Staff Augmentation
      • Frontend ontwikkelaars
      • Backend ontwikkelaars
      • Gegevensingenieurs
      • Cloud Ingenieurs
      • QA ingenieurs
      • Andere
    • Het advies
      • Audit & Consulting
  • Industrie
    • Fintech & Bankieren
    • E-commerce
    • Adtech
    • Gezondheidstechnologie
    • Productie
    • Logistiek
    • Automotive
    • IOT
  • Waarde voor
    • CEO
    • CTO
    • Leveringsmanager
  • Ons team
  • Case Studies
  • Weten hoe
    • Blog
    • Ontmoetingen
    • Webinars
    • Bronnen
Carrière Neem contact op
  • Over ons
  • Diensten
    • Software Ontwikkeling
      • Frontend ontwikkeling
      • Backend ontwikkeling
    • Staff Augmentation
      • Frontend ontwikkelaars
      • Backend ontwikkelaars
      • Gegevensingenieurs
      • Cloud Ingenieurs
      • QA ingenieurs
      • Andere
    • Het advies
      • Audit & Consulting
  • Waarde voor
    • CEO
    • CTO
    • Leveringsmanager
  • Ons team
  • Case Studies
  • Weten hoe
    • Blog
    • Ontmoetingen
    • Webinars
    • Bronnen
Carrière Neem contact op
Pijl terug KEREN TERUG
2021-04-28
Software Ontwikkeling

Beveiliging van webapps. Target="_blank" kwetsbaarheid

Lukasz Kolko

Het gebruik van webapplicaties is gemeengoed geworden in elke samenleving. We hebben er elke dag mee te maken. We kunnen zeggen dat ze ons omringen. We gebruiken ze op het werk, voor entertainment en als hulpmiddel om met anderen te communiceren. Vaak realiseren we ons als gebruikers en ontwikkelaars niet hoeveel beveiligingslekken er dagelijks worden ontdekt in dergelijke toepassingen.

Onlangs hebben we geschreven over beveiliging van webapplicaties als het gaat om XSS-kwetsbaarheid. Deze keer willen we jullie aandacht vestigen op een ander gevaar.

De kwetsbaarheid die in dit document wordt besproken, bestaat al heel lang en wordt door zijn eenvoud vaak onderschat of is zelfs onbekend bij sommigen. ontwikkelaars van webtoepassingen.

Bijna elke webapplicatie bevat links die, wanneer erop geklikt wordt, openen in een nieuw tabblad zodat het tabblad met de originele pagina niet gesloten wordt. Dit is een voorkeursgedrag omdat de makers willen dat de gebruiker zoveel mogelijk tijd doorbrengt in de applicatie.

Een aanval die misbruik maakt van deze kwetsbaarheid is het zogenaamde "reverse tabnabbing". Het is een aanval waarbij een pagina waarnaar wordt gelinkt vanaf de doelpagina in staat is om die pagina te vervangen door bijvoorbeeld een phishingsite.

Aanvalsscenario

  1. Stel dat het slachtoffer Facebook gebruikt, wat bekend staat om het openen van links via target="_blank",
  2. Maak een valse virale pagina,
  3. Maak een phishing-website die eruitziet als een Facebook-inlogpagina,
  4. Zet de onderstaande code op de virale pagina, bijvoorbeeld via een gevonden XSS-kwetsbaarheid
    window.opener.location = 'https://phishing-website/facebook.com';
  5. Het slachtoffer klikt op de link op Facebook naar de virale pagina,
  6. De virale pagina leidt het Facebook-tabblad om naar de phishingwebsite en vraagt de gebruiker om zich opnieuw aan te melden.

We kunnen dus het bovenliggende tabblad van de geïnfecteerde doelpagina wijzigen met behulp van een vensterobject van Web API. Bij een aanval worden meestal meerdere ontdekte kwetsbaarheden en phishing-zwendel tegelijk gebruikt.

Het probleem

Als we een nieuw tabblad in de browser openen via een koppeling met de doel="_blank attribuut hebben we toegang tot onze "verwijzer" van het nieuwe tabblad. Meer specifiek, tot de opener eigenschap van de Venster object, dat een verwijzing teruggeeft naar het venster dat het heeft geopend, onze bovenliggende pagina.

Dit komt door het gedrag van de Venster.open() functie. Met toegang tot dit attribuut kunnen we eenvoudig onze bovenliggende pagina vervangen. Merk op dat sommige moderne browsers window.opener functie in doel tab als nul om dit gedrag te voorkomen.

Voorbeeldcode

<code> <a href="https://github.com" target="_blank">Ga naar GitHub - geïnfecteerde link</a>
const
 als (link)
   link[0].onclick = () => {
     if (window) window.opener.location = 'https://stackoverflow.com'
   }

Hierboven kun je de geïnfecteerde link zien die oorspronkelijk een nieuw tabblad opent met een GitHub pagina, maar ondertussen verandert het onze "bovenliggende" pagina naar de Stackoverflow site.

Live voorbeeld

1. HTML-koppelingen

Voeg toe rel="noopener noreferrer" naar de <a> tag.

De rel attribuut definieert de relatie tussen een gelinkte bron en het huidige document.

noopener vertelt de browser om naar het doel te navigeren zonder toegang te verlenen aan de ouder die het heeft geopend. Tab Doel Venster.opener zullen nul.

nocheferrer voorkomt dat de browser, wanneer deze naar het doel navigeert, het adres of een andere waarde als referrer naar de ouder stuurt via de verwijzer HTTP-header. Merk op dat de naam van deze HTTP-header met opzet verkeerd gespeld is als "referrer".

2. JavaScript links

Voor de JavaScript Venster.open functie kun je de waarden noopener en nocheferrer in de windowFeatures parameter van de Venster.open functie, maar verschillende browsers kunnen verschillend reageren, dus het is aan te raden om Venster.opener als nul na gebruik van Venster.open() functie.

Meer lezen:

Rails API & CORS. Een vleugje bewustzijn

Strategieën voor het ophalen van gegevens in NextJS

7 redenen waarom uw webwinkel Magento nodig heeft

Als je dit artikel interessant vindt, volg Lukasz dan op Github: https://github.com/twistezo

Verwante artikelen

Software Ontwikkeling

Bouw Toekomstbestendige Web Apps: Inzichten van The Codest's Expert Team

Ontdek hoe The Codest uitblinkt in het creëren van schaalbare, interactieve webapplicaties met geavanceerde technologieën, het leveren van naadloze gebruikerservaringen op alle platforms. Ontdek hoe onze expertise digitale transformatie en business...

DE BESTE
Software Ontwikkeling

Top 10 in Letland gevestigde bedrijven voor softwareontwikkeling

Lees meer over de beste softwareontwikkelingsbedrijven van Letland en hun innovatieve oplossingen in ons nieuwste artikel. Ontdek hoe deze technologieleiders uw bedrijf kunnen helpen verbeteren.

thecodest
Oplossingen voor ondernemingen en schaalvergroting

Essentiële Java-softwareontwikkeling: Een gids voor succesvol uitbesteden

Verken deze essentiële gids over succesvolle outsourcing Java-softwareontwikkeling om de efficiëntie te verbeteren, toegang te krijgen tot expertise en projectsucces te stimuleren met The Codest.

thecodest
Software Ontwikkeling

De ultieme gids voor outsourcing in Polen

De sterke groei van outsourcing in Polen wordt gedreven door economische, educatieve en technologische vooruitgang, die IT-groei en een bedrijfsvriendelijk klimaat stimuleert.

DeCodest
Oplossingen voor ondernemingen en schaalvergroting

De complete gids voor IT-auditmiddelen en -technieken

IT-audits zorgen voor veilige, efficiënte en compliant systemen. Lees het volledige artikel om meer te weten te komen over het belang ervan.

The Codest
Jakub Jakubowicz CTO & medeoprichter

Abonneer je op onze kennisbank en blijf op de hoogte van de expertise uit de IT-sector.

    Over ons

    The Codest - Internationaal softwareontwikkelingsbedrijf met technische hubs in Polen.

    Verenigd Koninkrijk - Hoofdkantoor

    • Kantoor 303B, 182-184 High Street North E6 2JA
      Londen, Engeland

    Polen - Lokale technologieknooppunten

    • Fabryczna kantorenpark, Aleja
      Pokoju 18, 31-564 Krakau
    • Hersenambassade, Konstruktorska
      11, 02-673 Warschau, Polen

      The Codest

    • Home
    • Over ons
    • Diensten
    • Case Studies
    • Weten hoe
    • Carrière
    • Woordenboek

      Diensten

    • Het advies
    • Software Ontwikkeling
    • Backend ontwikkeling
    • Frontend ontwikkeling
    • Staff Augmentation
    • Backend ontwikkelaars
    • Cloud Ingenieurs
    • Gegevensingenieurs
    • Andere
    • QA ingenieurs

      Bronnen

    • Feiten en fabels over samenwerken met een externe partner voor softwareontwikkeling
    • Van de VS naar Europa: Waarom Amerikaanse startups besluiten naar Europa te verhuizen
    • Tech Offshore Ontwikkelingshubs Vergelijking: Tech Offshore Europa (Polen), ASEAN (Filippijnen), Eurazië (Turkije)
    • Wat zijn de grootste uitdagingen voor CTO's en CIO's?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Gebruiksvoorwaarden website

    Copyright © 2025 door The Codest. Alle rechten voorbehouden.

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