HTTP CSP frame-ancestors Directive

Die Content-Security-Policy frame-ancestors Direktive kontrolliert welche Origins die aktuelle Seite in einem <frame>, <iframe>, <object> oder <embed> einbetten dürfen. Sie verhindert Clickjacking-Angriffe durch Einschränkung erlaubter Parent-Kontexte und ist der moderne Nachfolger des X-Frame-Options-Headers.

Typ

CSP Navigation-Direktive

Syntax

Die Direktive akzeptiert eine Whitelist vertrauenswürdiger Embedding-Origins.

http
Content-Security-Policy: frame-ancestors 'none'
Content-Security-Policy: frame-ancestors 'self' https://trusted.example.com

Direktiven

Die frame-ancestors Direktive verwendet spezielle CSP-Quellausdrücke zur Kontrolle erlaubter Parent-Frames.

'none'
Verbietet jegliches Embedding. Die Seite kann nicht in Frames geladen werden.
'self'
Erlaubt Embedding nur vom gleichen Origin. Nützlich für Multi-Page-Applikationen mit eigenen Framesets.
https://partner.example.com
Domain-Whitelisting. Erlaubt gezielt Embedding durch spezifische Partner-Domains.
https:
Erlaubt Embedding durch alle HTTPS-Origins. Erzwingt verschlüsselte Parent-Kontexte.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für die frame-ancestors Direktive.

Beispiel 1 Vollständige Clickjacking-Prävention

http
HTTP/1.1 200 OK
Content-Security-Policy: frame-ancestors 'none'

<!DOCTYPE html>
<html>
<head>
  <title>Banking Portal</title>
</head>
<body>
  <h1>Secure Banking Interface</h1>
  <!-- Diese Seite kann NICHT in iframes geladen werden -->
</body>
</html>

Browser blockiert jegliche Embedding-Versuche durch Dritte.

Beispiel 2 OAuth Authorization Endpoint

http
Content-Security-Policy: frame-ancestors 'self' https://app.example.com

<!-- OAuth Provider erlaubt Embedding nur durch registrierte Apps -->
<form action="/oauth/authorize" method="POST">
  <input type="hidden" name="client_id" value="abc123">
  <button type="submit">Authorize Application</button>
</form>

<!-- Embedding von anderen Domains wird blockiert -->

Beispiel 3 Partner-Integration mit Whitelist

http
Content-Security-Policy: frame-ancestors 'self' https://partner-a.com https://partner-b.com

<!-- API-Dashboard kann von Partnern eingebettet werden -->
<div class="api-metrics">
  <h2>API Usage Dashboard</h2>
  <canvas id="metrics-chart"></canvas>
</div>

<!-- Embedding von nicht whitelisteten Domains wird blockiert -->

Clickjacking Prevention Flow

CSP frame-ancestors verhindert Clickjacking-Angriffe

Vorteile für die Systemarchitektur

  • Clickjacking-Prävention: Verhindert UI-Redressing-Angriffe durch Kontrolle erlaubter Parent-Kontexte für Embedding
  • X-Frame-Options Ersatz: Modernere Alternative mit granularer Kontrolle mehrerer erlaubter Origins statt binärer Allow-Deny-Logik
  • OAuth-Security: Schützt Authorization-Endpoints vor Phishing durch Einschränkung auf registrierte Client-Origins

Spezifikation

Content Security Policy Level 3 – W3C Working Draft https://www.w3.org/TR/CSP3/#directive-frame-ancestors

Weitere Spezifikationen

X-Frame-Options Header, Content-Security-Policy Header