EMZETT.
Login

Clickjacking: Versteckte Klicks auf fremden Seiten

Kurz: Ein Angriff, bei dem eine echte Seite unsichtbar über einer Köder-Seite liegt, sodass der Nutzer ungewollt auf deren Schaltflächen klickt.

Genauer: Der Angreifer bindet die Zielseite in einen durchsichtigen <iframe> ein und legt ihn über eine harmlos wirkende Seite („Gewinne ein Handy!“). Wer den Köder anklickt, löst in Wirklichkeit eine Aktion auf der Zielseite aus, etwa „Konto löschen“ oder „Kaufen“, und zwar mit seiner bestehenden Anmeldung.

Im Detail

So funktioniert es

Per CSS wird der iframe mit opacity: 0 unsichtbar gemacht und so verschoben, dass die gefährliche Schaltfläche genau unter dem Köder liegt. Der Nutzer sieht nur den Köder, klickt, und der Browser leitet den Klick an die darüberliegende Zielseite weiter. Eine Variante heißt Likejacking (unbemerktes „Gefällt mir“), eine andere Cursorjacking.

Schutz: Einbettung verbieten

Die Zielseite muss dem Browser sagen, dass sie nicht in fremden Rahmen erscheinen darf:

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

frame-ancestors ist der moderne Weg und erlaubt auch gezielte Ausnahmen, etwa frame-ancestors 'self' https://partner.example. X-Frame-Options ist der ältere Header und wird zusätzlich gesetzt.

Weitere Maßnahmen

Cookies mit SameSite=Lax oder Strict verhindern, dass die Anmeldung im Fremdrahmen mitgeschickt wird. Bei besonders kritischen Aktionen schützt eine zusätzliche Bestätigung (Passwort, Zwei-Faktor). Frame-Busting-Skripte per JavaScript gelten als unzuverlässig und ersetzen die Header nicht.

Prüfen

Mit den Entwicklerwerkzeugen des Browsers (Netzwerk-Tab) lässt sich kontrollieren, ob die Antwort die genannten Header enthält. Viele Sicherheitsscanner melden fehlenden Schutz gegen Clickjacking.

Siehe auch: Security-Header, Content Security Policy, XSS