Security
9 min read
1931 views

Clickjacking: Der unsichtbare Angriff, der Nutzer austrickst 🖱️

IT
InstaTunnel Team
Published by our engineering team
Clickjacking: Der unsichtbare Angriff, der Nutzer austrickst 🖱️

Stellen Sie sich vor, Sie klicken auf ein niedliches Katzenvideo, nur um versehentlich eine Banküberweisung zu autorisieren. Oder versuchen, einen kostenlosen Gewinn zu erzielen, und löschen stattdessen Ihr gesamtes Konto. Das ist keine Science-Fiction—es ist clickjacking, eine der scheinbar einfachsten, aber dennoch verheerend wirkungsvollen Web-Sicherheitslücken, die das Internet auch heute noch plagt.

Obwohl es vor über zwei Jahrzehnten erkannt wurde, bleibt clickjacking eine anhaltende Bedrohung. Aktuelle Studien zeigen, dass fast zwei Drittel der Top-Banking-Seiten und 70 % der Top-10-Webseiten nach Besucherzahlen keine Gegenmaßnahmen gegen clickjacking-Angriffe implementiert haben. Noch beunruhigender ist, dass große Passwortmanager wie 1Password, Bitwarden, LastPass und andere—mit etwa 32,7 Millionen aktiven Installationen—bis August 2025 weiterhin anfällig für clickjacking-Varianten sind.

Die gute Nachricht? Der Schutz Ihrer Webanwendung vor clickjacking ist überraschend einfach. Aber lassen Sie uns zunächst verstehen, was diesen Angriff so gefährlich einfach auszuführen macht.

Was ist Clickjacking?

Clickjacking ist eine bösartige Technik, die Nutzer dazu verleitet, auf etwas anderes zu klicken, als sie wahrnehmen, was möglicherweise vertrauliche Informationen offenlegt oder Angreifern die Kontrolle ermöglicht, während Nutzer mit scheinbar harmlosen Webseiten interagieren. Stellen Sie es sich wie einen digitalen Zaubertrick vor—was Sie sehen, ist nicht immer das, was Sie bekommen.

Der Angriff funktioniert, indem ein transparentes oder getarntes Webseitenelement über eine legitime Seite gelegt wird. Wenn Nutzer denken, sie klicken auf einen harmlosen Button oder Link, interagieren sie tatsächlich mit versteckten Elementen einer anderen Webseite, die in einem unsichtbaren iframe geladen sind. Es ist ein klassischer Fall von UI-Manipulation, bei dem der Angreifer die visuelle Darstellung so verändert, dass Nutzer getäuscht werden, was ihre Aktionen bewirken.

Die Eleganz von clickjacking liegt in seiner Einfachheit. Im Gegensatz zu komplexen SQL-Injection-Angriffen oder ausgeklügelten Phishing-Methoden erfordert clickjacking kein ausgefeiltes technisches Wissen oder teure Werkzeuge. Ein grundlegendes Verständnis von HTML, CSS und iframes reicht aus, um einen funktionierenden Angriff zu konstruieren.

Die Anatomie eines clickjacking-Angriffs

Lassen Sie uns aufschlüsseln, wie ein Angreifer diese Schwachstelle mit erschreckender Leichtigkeit ausnutzen kann. Die Grundkonfiguration benötigt nur wenige Zeilen HTML und CSS.

Schritt 1: Das unsichtbare iframe

Der Angreifer erstellt eine bösartige Webseite, die Ihre legitime Webanwendung in einem iframe lädt. Hier der scheinbar einfache Code:

ciframe src="https://victim-bank.com/transfer" 
        style="opacity: 0; 
               position: absolute; 
               top: 0; 
               left: 0; 
               width: 100%; 
               height: 100%;"e
c/iframee

Durch das Setzen der opacity auf 0 wird das iframe vollständig unsichtbar. Der Angreifer positioniert es so, dass es die gesamte Seite überlagert und es “klickdurch-transparent” macht, egal was darunter liegt.

Schritt 2: Die Lockvogel-Schicht

Unter dem unsichtbaren iframe platziert der Angreifer ansprechenden, klickbaren Inhalt—alles, was einen Nutzer zum Klicken verleiten könnte:

cdiv style="position: absolute; top: 100px; left: 200px;"e
  ch1e🎁 Glückwunsch! Sie haben gewonnen!c/h1e
  cbutton style="font-size: 24px; padding: 20px;"e
    Hier klicken, um Ihren Preis zu beanspruchen!c/buttone
c/dive

Schritt 3: Die perfekte Ausrichtung

Der Angreifer positioniert seinen Lockvogel-Button so, dass er exakt mit einem sensiblen Aktionsbutton im darüber liegenden iframe ausgerichtet ist—vielleicht ein “Transfer bestätigen”-Button oder “Konto löschen”. Wenn Nutzer auf das, was sie für den Preis-Button halten, klicken, klicken sie tatsächlich auf den versteckten Button im iframe.

cstylee
  iframe {
    opacity: 0.5; /* Während der Entwicklung sichtbar */
    position: absolute;
    top: -200px; /* Angepasst, um mit dem Ziel-Button auszurichten */
    left: -300px;
    width: 1000px;
    height: 1000px;
    z-index: 2;
  }
  .decoy-button {
    position: absolute;
    top: 300px;
    left: 450px;
    z-index: 1;
  }
c/stylee

Während der Entwicklung setzt der Angreifer die opacity auf 0.5, um beide Schichten sichtbar zu machen und die Ausrichtung fein abzustimmen. Sobald alles perfekt ist, ändert er die opacity zurück auf 0, sodass die Überlagerung vollständig unsichtbar wird.

Schritt 4: Varianten des Angriffs

Der grundlegende clickjacking-Angriff hat zahlreiche Variationen, die unterschiedliche Schwachstellen ausnutzen:

Likejacking: Nutzer werden dazu verleitet, soziale Medieninhalte oder Seiten zu liken, die sie eigentlich nicht unterstützen wollten, was die Verbreitung bösartiger Inhalte fördert.

Cursorjacking: Manipulation der Cursor-Position, sodass Nutzer denken, sie klicken an einer Stelle, während sie tatsächlich an einer anderen klicken.

Filejacking: Nutzer werden dazu verleitet, Datei-Upload-Buttons zu klicken, was das Hochladen sensibler Dokumente vom Gerät ermöglicht.

Cookie-jacking: Session-Cookies oder Authentifizierungstokens werden gestohlen, indem Nutzer zu Aktionen verleitet werden, die diese Informationen offenlegen.

Konkrete Folgen

Die Auswirkungen von clickjacking gehen weit über theoretische Schwachstellen hinaus. Reale Angriffe haben beispielsweise zu:

Finanziellen Betrug: Nutzer autorisieren unwissentlich Banküberweisungen, Kryptowährungstransaktionen oder Abonnementzahlungen.

Kontenübernahmen: Angreifer übernehmen Konten, indem sie Nutzer dazu verleiten, “Passwort ändern”- oder “Administrator hinzufügen”-Buttons zu klicken.

Verletzungen der Privatsphäre: Nutzer gewähren versehentlich Zugriffsrechte auf Webcam, Mikrofon, Standortdaten oder persönliche Dateien.

Verbreitung von Malware: Opfer klicken auf unsichtbare Download-Buttons und installieren schädliche Software, ohne es zu merken.

Social Engineering in großem Stil: Angreifer manipulieren soziale Medien, um Fehlinformationen zu verbreiten oder mehrere Konten durch virale Weiterleitung zu kompromittieren.

Die jüngste Entdeckung von Schwachstellen in Passwortmanagern zeigt, wie selbst sicherheitsorientierte Anwendungen Opfer dieser Angriffe werden können. Wenn Passwortmanager automatisch Anmeldedaten in unsichtbare iframes ausfüllen, können Angreifer Login-Informationen mit einem einzigen getäuschten Klick stehlen—eine besonders ironische Schwachstelle bei Tools, die eigentlich die Sicherheit erhöhen sollen.

Warum clickjacking immer noch funktioniert

Trotz einer gut dokumentierten Schwachstelle seit 2002 besteht clickjacking weiterhin aus mehreren Gründen:

Entwicklerübersehen: Viele Entwickler sind sich der Risiken nicht bewusst oder gehen davon aus, dass ihre Anwendungen nicht Ziel solcher Angriffe sind.

Altsysteme: Ältere Webanwendungen wurden vor der Standardisierung von clickjacking-Schutzmaßnahmen entwickelt und wurden nicht aktualisiert.

Unvollständige Implementierungen: Manche Seiten setzen Schutzmaßnahmen nur unvollständig um.

Drittanbieter-Integrationen: Legitime Geschäftsbedürfnisse erfordern manchmal das Einbetten, was potenzielle Angriffspunkte schafft, wenn es nicht sorgfältig kontrolliert wird.

Mobile und eingebettete Browser: Schutzmechanismen funktionieren nicht immer konsistent auf allen Plattformen und Browsern.

Die einfache, aber wichtige Lösung

Hier das Erstaunliche: Der Schutz vor clickjacking erfordert nur das Hinzufügen ein oder zwei HTTP-Response-Header zu Ihrer Webanwendung. Mehr nicht. Keine komplexen Authentifizierungsschemata, keine teuren Sicherheitswerkzeuge, kein aufwändiger Code-Refactoring.

Lösung 1: X-Frame-Options Header

Der X-Frame-Options-Header wurde speziell gegen clickjacking entwickelt. Er weist Browser an, ob Ihre Seite in einem iframe geladen werden darf. Sie haben drei Optionen:

DENY: Verhindert, dass irgendeine Domain Ihre Inhalte in einem iframe lädt.

X-Frame-Options: DENY

SAMEORIGIN: Erlaubt das Einbetten nur durch Seiten derselben Domain.

X-Frame-Options: SAMEORIGIN

ALLOW-FROM: Erlaubt das Einbetten nur durch bestimmte Domains (in modernen Browsern veraltet).

X-Frame-Options: ALLOW-FROM https://trusted-site.com

Für die meisten Anwendungen bietet DENY den stärksten Schutz. Verwenden Sie SAMEORIGIN, wenn Sie Ihre eigenen Seiten innerhalb Ihrer Seite einbetten möchten.

Lösung 2: Content-Security-Policy frame-ancestors Direktive

Die Content-Security-Policy (CSP) bietet eine modernere und flexiblere Schutzmöglichkeit durch die frame-ancestors-Direktive. Diese ersetzt die X-Frame-Options-Header, wenn beide vorhanden sind, wird die CSP-Direktive durchgesetzt.

Alle Frame-Einbettungen blockieren:

Content-Security-Policy: frame-ancestors 'none'

Nur gleiche Herkunft erlauben:

Content-Security-Policy: frame-ancestors 'self'

Bestimmte vertrauenswürdige Domains erlauben:

Content-Security-Policy: frame-ancestors 'self' https://trusted-partner.com

Mehrere vertrauenswürdige Quellen:

Content-Security-Policy: frame-ancestors 'self' https://partner1.com https://partner2.com

Vorteile der CSP-Variante:

  • Feinere Kontrolle, welche Seiten Ihre Inhalte einbetten dürfen
  • Unterstützung mehrerer Domains
  • Testmodus (report-only)
  • Bessere Integration in moderne Web-Sicherheitspraktiken
  • Umfassender Schutz im Rahmen einer CSP-Policy

Best Practices bei der Implementierung

Beide Header verwenden für maximale Kompatibilität: Während CSP frame-ancestors moderner ist, sorgt die gleichzeitige Nutzung beider Header für Schutz in allen Browsern, auch älteren.

X-Frame-Options: DENY
Content-Security-Policy: frame-ancestors 'none'

Header serverweit anwenden: Konfigurieren Sie die Header auf Server-Ebene, um einen konsistenten Schutz auf allen Seiten zu gewährleisten.

Für Apache:

Header always set X-Frame-Options "DENY"
Header always set Content-Security-Policy "frame-ancestors 'none'"

Für Nginx:

add_header X-Frame-Options "DENY" always;
add_header Content-Security-Policy "frame-ancestors 'none'" always;

Für Node.js/Express:

app.use((req, res, next) => {
  res.setHeader('X-Frame-Options', 'DENY');
  res.setHeader('Content-Security-Policy', "frame-ancestors 'none'");
  next();
});

Testen Sie Ihre Implementierung: Überprüfen Sie Ihre Headers mit Browser-Entwicklertools oder Online-Tools zur Sicherheitsheader-Analyse. Erstellen Sie eine Testseite, die versucht, Ihre Seite in einem iframe zu laden, um den Schutz zu bestätigen.

Verlassen Sie sich nicht auf Meta-Tags: Das Setzen von X-Frame-Options via HTML-Meta-Tags funktioniert nicht—diese Header müssen als HTTP-Response-Header vom Server gesendet werden.

Legitime Einbettungsbedürfnisse berücksichtigen: Wenn Sie das Einbetten für Widgets, APIs oder Partner-Integrationen erlauben müssen, verwenden Sie CSPs frame-ancestors mit spezifischen Whitelist-Domains, anstatt den Schutz ganz zu deaktivieren.

Defense in Depth: Kombinieren Sie Frame-Busting-Header mit weiteren Sicherheitsmaßnahmen wie CSRF-Tokens, SameSite-Cookies und Bestätigungsdialogen bei sensiblen Aktionen.

Vulnerabilitätstest

Vor der Implementierung von Schutzmaßnahmen prüfen Sie, ob Ihre Anwendung verwundbar ist:

Manuelles Testen: Erstellen Sie eine einfache HTML-Datei, die versucht, Ihre Anwendung in einem iframe zu laden. Wenn es erfolgreich lädt, sind Sie verwundbar.

Automatisierte Scans: Nutzen Sie Sicherheitstools wie OWASP ZAP, Burp Suite oder Online-Header-Analysetools, um fehlende Schutzmaßnahmen zu erkennen.

Browser-Entwicklertools: Überprüfen Sie im Netzwerk-Tab, welche Headers Ihre Anwendung bei Antworten sendet.

Über den Basis-Schutz hinaus

Obwohl Frame-Busting-Header einen guten Schutz gegen clickjacking bieten, sollten Sie zusätzliche Maßnahmen erwägen:

Benutzerbestätigung bei sensiblen Aktionen: Erfordern Sie explizite Bestätigungsschritte bei kritischen Vorgängen wie Überweisungen oder Kontolöschungen.

Visuelle Hinweise: Zeigen Sie aktuelle Domain-Informationen bei Authentifizierungsseiten und sensiblen Transaktionen.

Ratenbegrenzung: Begrenzen Sie die Geschwindigkeit, mit der sensible Aktionen ausgeführt werden können, um automatisierte Angriffe zu verlangsamen.

Sitzungszeitüberschreitung: Implementieren Sie strenge Timeout-Regeln für inaktive Sitzungen mit sensiblen Vorgängen.

Sicherheitsbewusstseins-Schulungen: Schulen Sie Nutzer im Umgang mit verdächtigen Links und der Überprüfung, ob sie auf legitimen Seiten sind.

Fazit

Clickjacking zeigt ein grundlegendes Prinzip der Web-Sicherheit: Verheerende Schwachstellen erfordern nicht immer ausgeklügelte Angriffe. Manchmal nutzen die gefährlichsten Bedrohungen einfache Versäumnisse bei grundlegenden Sicherheitseinstellungen aus.

Ironischerweise ist die Lösung ebenso einfach: Ein einzelner HTTP-Header kann einen robusten Schutz bieten.

Da zwei Drittel der großen Banken-Webseiten keine clickjacking-Gegenmaßnahmen haben, ist die Botschaft klar: Gehen Sie nicht davon aus, dass Ihre Anwendung zu klein, zu sicher oder zu unbekannt ist, um Ziel zu sein. Jede Webanwendung, die Nutzerinteraktionen verarbeitet—was fast alle sind—sollte clickjacking-Protection implementieren.

Das Hinzufügen von X-Frame-Options oder Content-Security-Policy frame-ancestors Headers dauert nur wenige Minuten, bietet aber dauerhaften Schutz gegen eine anhaltende Bedrohung. Es ist eine der besten ROI-Sicherheitsmaßnahmen, die Sie umsetzen können—geringer Aufwand, maximaler Schutz.

Lassen Sie sich nicht von der Einfachheit der Lösung täuschen—es ist kein optionales Extra. In einer Welt, in der selbst Passwortmanager mit 32,7 Millionen Installationen anfällig bleiben, ist keine Anwendung zu klein oder zu sicher, um auf diese Grundschutzmaßnahmen zu verzichten.

Der unsichtbare Angriff, der Nutzer austrickst, ist real, aktiv und wartet auf ungeschützte Seiten. Stellen Sie sicher, dass Ihre Anwendung nicht dazu gehört. Fügen Sie noch heute diese Headers hinzu—die Sicherheit Ihrer Nutzer hängt davon ab.

Continue from this article into the most relevant product guides and workflows.

Related Topics

#clickjacking attack, clickjacking prevention, X-Frame-Options header, CSP frame-ancestors, iframe security, UI redress attack, web application security, clickjacking vulnerability, clickjacking mitigation, Content Security Policy, frame busting, clickjacking protection, OWASP clickjacking, web security headers, clickjacking examples, likejacking, iframe overlay attack, transparent iframe attack, clickjacking tutorial, security headers implementation, clickjacking defense, Apache security headers, Nginx security headers, click hijacking, user interface security, web vulnerability, CSRF protection, session hijacking, clickjacking testing, frame-ancestors directive, SAMEORIGIN header, DENY header, clickjacking exploit, browser security, frontend security, clickjacking code example, web application vulnerability, security best practices, HTTP security headers, clickjacking real world, password manager vulnerability, banking security, web security 2025, clickjacking statistics, iframe embedding security, third party embedding, security implementation guide, clickjacking awareness, developer security, application security, penetration testing, security compliance, OWASP top 10, clickjacking remediation, web security fundamentals

Keep building with InstaTunnel

Read the docs for implementation details or compare plans before you ship.

Share this article

More InstaTunnel Insights

Discover more tutorials, tips, and updates to help you build better with localhost tunneling.

Browse All Articles