window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = Fenster if (w.LeadBooster) { console.warn('LeadBooster existiert bereits') } 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 }) }, } } })() Sicherheit von Webanwendungen. Target="_blank" Sicherheitslücke - The Codest
Der Codest
  • Über uns
  • Dienstleistungen
    • Software-Entwicklung
      • Frontend-Softwareentwicklung
      • Backend-Softwareentwicklung
    • Staff Augmentation
      • Frontend-Entwickler
      • Backend-Entwickler
      • Daten-Ingenieure
      • Cloud-Ingenieure
      • QS-Ingenieure
      • Andere
    • IT-Beratung
      • Prüfung und Beratung
  • Branchen
    • Fintech & Bankwesen
    • E-commerce
    • Adtech
    • Gesundheitstechnik
    • Herstellung
    • Logistik
    • Automobilindustrie
    • IOT
  • Wert für
    • CEO
    • CTO
    • Delivery Manager
  • Unser Team
  • Fallstudien
  • Gewusst wie
    • Blog
    • Begegnungen
    • Webinare
    • Ressourcen
Karriere Kontakt aufnehmen
  • Über uns
  • Dienstleistungen
    • Software-Entwicklung
      • Frontend-Softwareentwicklung
      • Backend-Softwareentwicklung
    • Staff Augmentation
      • Frontend-Entwickler
      • Backend-Entwickler
      • Daten-Ingenieure
      • Cloud-Ingenieure
      • QS-Ingenieure
      • Andere
    • IT-Beratung
      • Prüfung und Beratung
  • Wert für
    • CEO
    • CTO
    • Delivery Manager
  • Unser Team
  • Fallstudien
  • Gewusst wie
    • Blog
    • Begegnungen
    • Webinare
    • Ressourcen
Karriere Kontakt aufnehmen
Pfeil zurück ZURÜCK
2021-04-28
Software-Entwicklung

Sicherheit von Webanwendungen. Target="_blank" Sicherheitslücke

Lukasz Kolko

Die Nutzung von Webanwendungen ist für jede Gesellschaft alltäglich geworden. Wir haben jeden Tag mit ihnen zu tun. Wir können sagen, dass sie uns umgeben. Wir nutzen sie bei der Arbeit, zur Unterhaltung und als Werkzeuge für die Kommunikation mit anderen. Als Benutzer und Entwickler ist uns oft nicht bewusst, wie viele Sicherheitslücken täglich in solchen Anwendungen entdeckt werden.

Kürzlich haben wir über Folgendes geschrieben Sicherheit von Webanwendungen, wenn es um XSS-Schwachstellen geht. Diesmal wollen wir Ihre Aufmerksamkeit auf eine andere Gefahr lenken.

Die in diesem Dokument erörterte Schwachstelle besteht schon seit langem, und aufgrund ihrer Einfachheit wird sie oft unterschätzt oder ist manchen sogar unbekannt. Webanwendungsentwickler.

Fast jede Webanwendung enthält Links, die, wenn sie angeklickt werden, in einer neuen Registerkarte geöffnet werden, um die Registerkarte mit der ursprünglichen Seite nicht zu schließen. Dies ist ein bevorzugtes Verhalten, da die Ersteller wollen, dass der Benutzer so viel Zeit wie möglich in der Anwendung verbringt.

Ein Angriff, der diese Schwachstelle ausnutzt, ist das so genannte "Reverse Tabnabbing". Dabei handelt es sich um einen Angriff, bei dem eine von der Zielseite verlinkte Seite in der Lage ist, diese Seite z. B. durch eine Phishing-Site zu ersetzen.

Angriffsszenario

  1. Angenommen, das Opfer nutzt Facebook, das dafür bekannt ist, Links über target="_blank" zu öffnen,
  2. Erstellen Sie eine gefälschte virale Seite,
  3. Erstellen Sie eine Phishing-Website, die wie eine Facebook-Anmeldeseite aussieht,
  4. Setzen Sie den untenstehenden Code auf der viralen Seite, z. B. über eine gefundene XSS-Schwachstelle
    window.opener.location = 'https://phishing-website/facebook.com';
  5. Das Opfer klickt auf den Link auf Facebook, der zu der viralen Seite führt,
  6. Die virale Seite leitet die Facebook-Registerkarte auf die Phishing-Website um und fordert den Benutzer auf, sich erneut anzumelden.

Wir können also die übergeordnete Registerkarte der infizierten Zielseite durch ein Fensterobjekt der Web-API ändern. Bei einem Angriff werden in der Regel mehrere entdeckte Schwachstellen und Phishing-Betrügereien parallel genutzt.

Das Problem

Wenn wir eine neue Registerkarte im Browser öffnen, indem wir einen Link mit dem target="_blank" Attribut haben wir Zugang zu unserem "Referrer" aus der neuen Registerkarte. Genauer gesagt, auf den Öffner Eigenschaft der Fenster Objekt, das einen Verweis auf das Fenster zurückgibt, das es geöffnet hat, unsere übergeordnete Seite.

Dies ist auf das Verhalten der Fenster.öffnen() Funktion. Mit Zugriff auf dieses Attribut können wir unsere übergeordnete Seite leicht ersetzen. Beachten Sie, dass einige moderne Browser die fenster.öffner Funktion in der Ziel-Registerkarte als null um dieses Verhalten zu verhindern.

Beispiel-Code

<code> <a href="https://github.com" target="_blank">Zu GitHub gehen - infizierter Link</a>
const
 if (link)
   link[0].onclick = () => {
     if (window) window.opener.location = 'https://stackoverflow.com'
   }

Oben sehen Sie den infizierten Link, der ursprünglich eine neue Registerkarte mit einer GitHub-Seite öffnet, aber in der Zwischenzeit unsere "übergeordnete" Seite auf die Stackoverflow-Seite ändert.

Live-Beispiel

1. HTML-Links

hinzufügen rel="noopener noreferrer" zum <a> Tag.

Die rel Attribut definiert die Beziehung zwischen einer verlinkten Ressource und dem aktuellen Dokument.

noopener weist den Browser an, zum Ziel zu navigieren, ohne dem Elternteil, der es geöffnet hat, Zugriff zu gewähren. Registerkarte "Ziel Fenster.öffner wird null.

noreferrer verhindert, dass der Browser, wenn er zum Ziel navigiert, die Adresse oder einen anderen Wert als Referrer über die Referent HTTP-Header. Beachten Sie, dass der Name dieses HTTP-Headers absichtlich falsch als "Referrer" geschrieben wird.

2. JavaScript Links

Für das JavaScript Fenster.öffnen Funktion können Sie die Werte hinzufügen noopener und noreferrer im windowFeatures Parameter des Fenster.öffnen Funktion, aber verschiedene Browser können unterschiedlich reagieren, daher wird empfohlen, die Fenster.öffner als null nach Gebrauch Fenster.öffnen() Funktion.

Mehr lesen:

Rails API und CORS. Ein Hauch von Bewusstsein

Strategien zum Abrufen von Daten in NextJS

7 Gründe, warum Ihr Online Shop Magento braucht

Wenn Sie diesen Artikel interessant finden, folgen Sie Lukasz auf Github: https://github.com/twistezo

Ähnliche Artikel

Software-Entwicklung

Zukunftssichere Web-Apps bauen: Einblicke vom The Codest-Expertenteam

Entdecken Sie, wie sich The Codest bei der Erstellung skalierbarer, interaktiver Webanwendungen mit Spitzentechnologien auszeichnet, die nahtlose Benutzererfahrungen auf allen Plattformen bieten. Erfahren Sie, wie unsere Expertise die digitale Transformation und...

DAS SCHÖNSTE
Software-Entwicklung

Top 10 Softwareentwicklungsunternehmen in Lettland

Erfahren Sie in unserem neuesten Artikel mehr über die besten Softwareentwicklungsunternehmen Lettlands und ihre innovativen Lösungen. Entdecken Sie, wie diese Technologieführer Ihr Unternehmen voranbringen können.

thecodest
Enterprise & Scaleups Lösungen

Grundlagen der Java-Softwareentwicklung: Ein Leitfaden für erfolgreiches Outsourcing

Entdecken Sie diesen wichtigen Leitfaden zum erfolgreichen Outsourcing der Java-Softwareentwicklung, um die Effizienz zu steigern, auf Fachwissen zuzugreifen und den Projekterfolg mit The Codest voranzutreiben.

thecodest
Software-Entwicklung

Der ultimative Leitfaden für Outsourcing in Polen

Der Anstieg des Outsourcings in Polen wird durch wirtschaftliche, bildungspolitische und technologische Fortschritte angetrieben, die das IT-Wachstum und ein unternehmensfreundliches Klima fördern.

TheCodest
Enterprise & Scaleups Lösungen

Der vollständige Leitfaden für IT-Audit-Tools und -Techniken

IT-Audits gewährleisten sichere, effiziente und gesetzeskonforme Systeme. Erfahren Sie mehr über ihre Bedeutung, indem Sie den vollständigen Artikel lesen.

Der Codest
Jakub Jakubowicz CTO & Mitbegründer

Abonnieren Sie unsere Wissensdatenbank und bleiben Sie auf dem Laufenden über das Fachwissen aus dem IT-Sektor.

    Über uns

    The Codest - Internationales Software-Unternehmen mit technischen Zentren in Polen.

    Vereinigtes Königreich - Hauptsitz

    • Büro 303B, 182-184 High Street North E6 2JA
      London, England

    Polen - Lokale Tech-Hubs

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Warszawa, Polen

      Der Codest

    • Startseite
    • Über uns
    • Dienstleistungen
    • Fallstudien
    • Gewusst wie
    • Karriere
    • Wörterbuch

      Dienstleistungen

    • IT-Beratung
    • Software-Entwicklung
    • Backend-Softwareentwicklung
    • Frontend-Softwareentwicklung
    • Staff Augmentation
    • Backend-Entwickler
    • Cloud-Ingenieure
    • Daten-Ingenieure
    • Andere
    • QS-Ingenieure

      Ressourcen

    • Fakten und Mythen über die Zusammenarbeit mit einem externen Softwareentwicklungspartner
    • Aus den USA nach Europa: Warum entscheiden sich amerikanische Start-ups für eine Verlagerung nach Europa?
    • Tech Offshore Development Hubs im Vergleich: Tech Offshore Europa (Polen), ASEAN (Philippinen), Eurasien (Türkei)
    • Was sind die größten Herausforderungen für CTOs und CIOs?
    • Der Codest
    • Der Codest
    • Der Codest
    • Privacy policy
    • Website terms of use

    Urheberrecht © 2025 von The Codest. Alle Rechte vorbehalten.

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