Was der Schutz vor Clickjacking macht

Der Schutz vor Clickjacking verbietet fremden Websites, deine Seite in einem Rahmen einzubetten. So kann niemand Besucher zu Klicks verleiten, die sie gar nicht sehen.

So funktioniert es

Beim Clickjacking lädt eine fremde Seite deine Seite unsichtbar in einen Rahmen (einen iframe) und legt etwas Harmloses darüber, etwa einen „Gewinn abholen“-Knopf. Wer darauf klickt, klickt in Wahrheit auf deine Seite: bestätigt eine Bestellung, ändert eine Einstellung oder gibt eine Freigabe, ohne es zu merken. Weil der Besucher bei dir angemeldet ist, gilt der Klick.

Der Schutz besteht darin, dass deine Seite dem Browser sagt, wer sie einbetten darf. Dafür gibt es zwei Header:

  • frame-ancestors ist eine Direktive der Content Security Policy. 'self' erlaubt nur die eigene Seite, 'none' niemanden, dazu kannst du einzelne Adressen nennen.
  • X-Frame-Options ist der ältere Header mit den Werten DENY (niemand) und SAMEORIGIN (nur die eigene Seite).

Kennt ein Browser frame-ancestors, hat das Vorrang vor X-Frame-Options.

Worauf es ankommt

  • Mindestens einer der beiden. Fehlen beide, darf jede Seite deine Seite einbetten.
  • Keine Platzhalter in frame-ancestors. *, https: oder http: erlauben wieder jede Seite.
  • Kein ALLOW-FROM. Diesen Wert von X-Frame-Options kennen aktuelle Browser nicht mehr und ignorieren den ganzen Header. Wer bestimmte Partner einbetten lassen will, nennt sie in frame-ancestors.
  • Eindeutige Werte. Steht X-Frame-Options mehrfach mit widersprüchlichen Werten in der Antwort, etwa einmal vom Webserver und einmal von der Anwendung, ignorieren Browser ihn.
  • Nur als Header. frame-ancestors wirkt nicht, wenn die Policy in einem <meta>-Tag im HTML steht.

So richtest du es ein

Der einfache Weg:

X-Frame-Options: SAMEORIGIN

Der moderne Weg, als eigene Policy oder als Teil deiner bestehenden:

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

Sollen Partner deine Seite einbetten dürfen, nenne sie dort: frame-ancestors 'self' https://partner.example. Beide Header werden im Webserver oder in der Anwendung gesetzt, von dir, deiner Agentur oder über eine Header-Regel beim Hoster oder CDN. Viele CMS-Sicherheits-Plugins haben dafür einen Schalter.

Mehr zu Schutz vor Einschleusung

Jetzt deine Website prüfen

Der Security-Check zeigt in wenigen Sekunden, welche Header fehlen, mit fertigen Zeilen zum Kopieren.

Website prüfen