Clickjacking-Schutz für Vercel konfigurieren

Schritt-für-Schritt-Anleitung: X-Frame-Options und CSP frame-ancestors auf Vercel einrichten — Iframe-Einbettung kontrollieren und Clickjacking verhindern.

Vercel · Schritt für Schritt

Clickjacking-Schutz auf Vercel

X-Frame-Options verhindert, dass Ihre Website in einem Iframe auf einer fremden Domain eingebettet wird. Angreifer nutzen Clickjacking, um Nutzer zu täuschen — sie klicken auf eine unsichtbar eingebettete Seite. X-Frame-Options ist mit 10 von 166 Punkten im Wolf-Agents Web Security Check bewertet.

Auf Vercel setzen Sie X-Frame-Options per vercel.json oder Edge Middleware. Verwenden Sie SAMEORIGIN, wenn Ihre Seite sich selbst einbetten darf, oder DENY für vollständigen Iframe-Schutz. Ergänzen Sie den Header durch frame-ancestors in Ihrer CSP für maximale Browser-Kompatibilität.

1 Schritt 1 von 3

X-Frame-Options per vercel.json

Fügen Sie den X-Frame-Options-Header in Ihre vercel.json ein. SAMEORIGIN erlaubt die Einbettung auf der gleichen Domain — ideal, wenn Sie selbst Iframes verwenden. Für maximalen Schutz setzen Sie DENY.

vercel.json Produktiv
// vercel.json — Clickjacking-Schutz
{
  "headers": [
    {
      "source": "/(.*)",
      "headers": [
        {
          "key": "X-Frame-Options",
          "value": "SAMEORIGIN"
        }
      ]
    }
  ]
}
2 Schritt 2 von 3

CSP frame-ancestors ergänzen

Der modernere Ansatz ist frame-ancestors 'none' in Ihrer Content Security Policy. Wenn Sie CSP per Edge Middleware setzen (siehe CSP-Kapitel), fügen Sie frame-ancestors direkt in die Policy ein. Beide Header — X-Frame-Options und frame-ancestors — sollten konsistent sein.

middleware.ts Edge
// middleware.ts — X-Frame-Options + CSP frame-ancestors
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';

export function middleware(request: NextRequest) {
  const response = NextResponse.next();
  // Legacy-Header für ältere Browser
  response.headers.set('X-Frame-Options', 'SAMEORIGIN');
  // Moderner Ersatz via CSP (frame-ancestors)
  // Wenn CSP separat gesetzt wird, frame-ancestors dort einbauen
  return response;
}
Wenn frame-ancestors in der CSP und X-Frame-Options sich widersprechen, hat frame-ancestors Vorrang in modernen Browsern. Ältere Browser ignorieren frame-ancestors und nutzen nur X-Frame-Options — setzen Sie daher beide konsistent.
3 Schritt 3 von 3

Header verifizieren

Prüfen Sie den X-Frame-Options-Header nach dem Deployment. Testen Sie auch, ob Ihre Seite tatsächlich nicht in einem Iframe auf einer fremden Domain geladen werden kann. Der Wolf-Agents Web Security Check prüft sowohl X-Frame-Options als auch frame-ancestors.

Terminal Verifizieren
# X-Frame-Options prüfen
curl -sI https://ihre-domain.de | grep -i x-frame-options

# Erwartete Ausgabe:
x-frame-options: SAMEORIGIN

Häufige Fehler

ALLOW-FROM wird nicht unterstützt

X-Frame-Options kennt nur DENY und SAMEORIGIN. ALLOW-FROM wird von modernen Browsern ignoriert. Verwenden Sie frame-ancestors in der CSP für spezifische Domain-Freigaben.

vercel.json gilt nicht für API Routes

API Routes unter /api/* erhalten den X-Frame-Options-Header aus vercel.json nicht automatisch. Setzen Sie den Header per Edge Middleware oder direkt in der API Route.

Widerspruch zwischen X-Frame-Options und CSP

Wenn X-Frame-Options SAMEORIGIN sagt, aber CSP frame-ancestors 'none' setzt, gewinnt CSP in modernen Browsern. Stellen Sie Konsistenz sicher.

Compliance-Relevanz

Clickjacking-Schutz ist eine Basisanforderung für Web-Sicherheit. OWASP listet Clickjacking als bekannten Angriffsvektor. PCI DSS und NIS2 fordern Schutzmaßnahmen gegen bekannte Angriffsmuster — X-Frame-Options und frame-ancestors gehören dazu. Der Wolf-Agents Web Security Check bewertet beide Header im Zusammenspiel.

Wie steht Ihre Domain bei Clickjacking-Schutz?

Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.