Clickjacking
Clickjacking ist eine Technik, bei der ein Angreifer die Benutzeroberfläche einer legitimen Website manipuliert, sodass Nutzer unwissentlich auf versteckte oder überlagerte Schaltflächen, Links oder Formulare klicken, die eigentlich zu schädlichen Aktionen führen. Der Angreifer nutzt dazu transparente oder unsichtbare HTML‑Elemente, iFrames oder CSS‑Masken, die über die sichtbare Seite gelegt werden. Wenn der User glaubt, auf ein harmloses Element zu klicken (z. B. einen Video‑Play‑Button), wird tatsächlich ein Klick an das dahinterliegende, vom Angreifer kontrollierte Ziel weitergeleitet – etwa das Ausführen einer Geldüberweisung, das Ändern von Sicherheitseinstellungen, das Anmelden bei einem Konto oder das Installieren von Malware.
Typische Vorgehensweise
- Der Angreifer erstellt eine bösartige Seite, die ein legitimes Ziel in einem unsichtbaren iFrame einbettet.
- Durch CSS‑Tricks (z. B.
opacity:0,z-index) wird das iFrame über ein scheinbar harmloses Element gelegt. - Der Nutzer klickt auf das sichtbare Element, doch der eigentliche Klick wird an das unsichtbare Ziel übertragen.
Schutzmaßnahmen
- X‑Frame‑Options‑Header: Server geben den Header
X-Frame-Options: DENY(oderSAMEORIGIN) aus, um zu verhindern, dass die Seite in fremden iFrames eingebettet wird. - Content‑Security‑Policy (CSP) –
frame‑ancestors‑Directive: Definiert, welche Quellen die Seite in einem Frame einbetten dürfen. - SameSite‑Cookies: Cookies mit
SameSite=LaxoderStrictverhindern, dass sie bei Cross‑Site‑Requests gesendet werden, wodurch CSRF‑ähnliche Angriffe erschwert werden. - Visuelle Bestätigungen: Kritische Aktionen (z. B. Geldüberweisungen) erfordern zusätzliche Benutzerinteraktionen wie das Eingeben eines Einmal‑Passworts (OTP) oder das erneute Klicken auf einen bestätigenden Button.
- Anti‑Clickjacking‑Scripts: JavaScript kann überprüfen, ob die Seite in einem Frame geladen wird (
if (top !== self) top.location = self.location;) und ggf. das Laden verhindern.
Durch die Kombination von serverseitigen Header‑Einstellungen und clientseitigen UI‑Bestätigungen lassen sich Clickjacking‑Angriffe wirksam abwehren.
