Kann deine Website fremd eingebettet werden?
Clickjacking versteckt deine echte Seite in einem unsichtbaren Frame auf einer fremden Website, sodass Besucher unbemerkt auf deine Buttons klicken. Füge eine URL ein und sieh, ob andere Websites sie einbetten können und ob das deine Besucher gefährdet.
- X-Frame-Options
- CSP frame-ancestors
Das ist die URL, geladen in einem Frame auf unserer Seite, genau wie ein Angreifer es tun würde. Siehst du die Seite, kann jede Website dasselbe tun. Zeigt der Frame einen Fehler wie "refused to connect", hat dein Browser sie blockiert.
Diese URL nutzt einfaches http, das Browser nicht in einer https-Seite laden, daher bleibt der Frame in jedem Fall leer. Verlass dich auf das Header-Ergebnis oben.
So behebst du es
Sende eine Content-Security-Policy mit frame-ancestors und zusätzlich X-Frame-Options für ältere Browser. Füge beides auf dem Webserver vor deiner Website hinzu.
nginx
add_header Content-Security-Policy "frame-ancestors 'self'" always;
add_header X-Frame-Options "SAMEORIGIN" always;
Apache
Header always set Content-Security-Policy "frame-ancestors 'self'"
Header always set X-Frame-Options "SAMEORIGIN"
Du nutzt Odoo? Verwende 'self' statt 'none': Der Website-Editor zeigt deine eigenen Seiten in einem Frame auf derselben Domain. CICDoo aktiviert diese Header standardmäßig für jede Instanz, die es deployt.
So funktioniert der Angriff
Deine Seite, fremde Klicks
Ein unsichtbarer Frame
Der Angreifer lädt deine echte Seite in einen transparenten iframe und legt ihn über einen Köder, etwa einen Gewinn-Button oder einen Videoplayer.
Ein echter Klick
Der Besucher ist bereits auf deiner Website angemeldet. Sein Klick landet auf deiner Seite: eine Zahlung freigeben, eine E-Mail-Adresse ändern oder Zugriff gewähren.
Ein Header stoppt das
frame-ancestors oder X-Frame-Options sagt dem Browser, welche Websites dich einbetten dürfen. Ohne den Header erlaubt der Browser es jedem.
FAQ
Fragen, beantwortet
Was prüft dieser Test?
Wir rufen die URL von unserem Server ab und lesen zwei Antwort-Header: X-Frame-Options und die frame-ancestors-Direktive der Content-Security-Policy. Die Seite lädt die URL außerdem in einem Frame, damit du das Ergebnis in deinem eigenen Browser siehst.
Welchen Header sollte ich verwenden?
frame-ancestors ist der moderne Standard und hat immer Vorrang, wenn er gesetzt ist. Behalte X-Frame-Options trotzdem für ältere Browser. Nutze 'self', um nur deine eigene Domain zuzulassen, oder 'none', um jeden Frame zu blockieren.
Warum ist der Frame leer?
Manche Websites blockieren Frames, zeigen unbekannten Besuchern eine leere Seite oder nutzen einfaches http, das Browser in einer https-Seite nicht laden. Das Header-Ergebnis hängt nicht von deinem Browser ab.
Ist meine Website angreifbar, wenn sie in einen Frame geladen werden kann?
Nicht unbedingt. Clickjacking braucht eine Seite mit einer relevanten Aktion, etwa einer Zahlung oder einer Änderung der Einstellungen, einen angemeldeten Besucher und ein Session-Cookie, das der Browser in einem Frame auf einer fremden Website mitsendet. Aktuelle Browser halten Cookies ohne SameSite=None zurück, daher lädt eine eingebettete Seite meist abgemeldet. Die Header lohnen sich trotzdem: Sie schließen die Tür endgültig, und Security-Audits prüfen sie.
Wird ALLOW-FROM noch unterstützt?
Nein. Aktuelle Browser ignorieren X-Frame-Options ALLOW-FROM. Um bestimmte Partner-Websites zuzulassen, liste sie stattdessen in frame-ancestors auf.
Speichert ihr die URL?
Wir speichern nur einen Eintrag zur Ratenbegrenzung, nicht die URL oder das Ergebnis.
Security-Header, an die du nie denken musst.
CICDoo betreibt Odoo auf Servern, die dir gehören, mit Frame-Schutz, SSL, Zwei-Faktor-Login, Backups und einem täglichen Security-Scan jeder Instanz.
Keine Gebühren pro Nutzer. Deine Server bleiben deine.