HTTP CSP frame-src Directive

Die Content-Security-Policy frame-src Direktive kontrolliert erlaubte Quellen für eingebettete Frames via <iframe>, <frame>, <object> und <embed> Elemente. Sie verhindert Malware-Injection, Drive-by-Downloads und Phishing-Angriffe durch Einschränkung der Domains von denen Frame-Inhalte geladen werden dürfen.

Typ

CSP Fetch-Direktive

Syntax

Die Direktive akzeptiert eine Whitelist vertrauenswürdiger Frame-Quellen.

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

Direktiven

Die frame-src Direktive verwendet Standard-CSP-Quellausdrücke zur Kontrolle erlaubter Frame-Inhalte.

'none'
Verbietet alle eingebetteten Frames. Nützlich für Seiten ohne externe Widget-Integration.
'self'
Erlaubt Frames nur vom gleichen Origin. Verhindert externe Content-Einbettung.
https://trusted-widgets.example.com
Domain-Whitelisting. Erlaubt gezielt Frames von vertrauenswürdigen Widget-Providern oder Partnern.
https:
Erlaubt alle HTTPS-Frame-Quellen. Erzwingt verschlüsselte Frame-Inhalte ohne Domain-Einschränkung.

Beispiele

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

Beispiel 1 YouTube Video Embedding

http
HTTP/1.1 200 OK
Content-Security-Policy: frame-src 'self' https://www.youtube-nocookie.com

<!DOCTYPE html>
<html>
<body>
  <iframe width="560" height="315"
    src="https://www.youtube-nocookie.com/embed/dQw4w9WgXcQ"
    frameborder="0" allowfullscreen>
    <!-- Erlaubt durch frame-src -->
  </iframe>

  <iframe src="https://malicious-ads.com/widget">
    <!-- Blockiert durch CSP -->
  </iframe>
</body>
</html>

Beispiel 2 Payment-Widget Integration

http
Content-Security-Policy: frame-src 'self' https://secure.stripe.com https://js.stripe.com

<!-- E-Commerce Checkout mit Payment-Provider -->
<div class="checkout">
  <iframe src="https://js.stripe.com/v3/elements.html"
    id="payment-frame">
    <!-- Erlaubt: Whitelisted Payment-Provider -->
  </iframe>
</div>

<iframe src="https://unknown-payment.com/form">
  <!-- Blockiert: Nicht in Whitelist -->
</iframe>

Beispiel 3 Strikte Policy ohne externe Frames

http
Content-Security-Policy: frame-src 'none'; default-src 'self'

<!-- Seite ohne externe Widget-Integration -->
<div class="content">
  <h1>API Documentation</h1>
  <p>No embedded frames allowed</p>
</div>

<iframe src="/internal/sidebar.html">
  <!-- Blockiert: Auch self ist verboten -->
</iframe>

<!-- Fallback zu direkten Links -->
<a href="https://www.youtube.com/watch?v=dQw4w9WgXcQ"
   target="_blank">Watch Video</a>

Frame Loading Security Flow

CSP frame-src verhindert Malware-Injection via Frames

Vorteile für die Systemarchitektur

  • Malware-Prävention: Verhindert Drive-by-Downloads und Exploit-Injection durch Einschränkung erlaubter Frame-Quellen auf vertrauenswürdige Domains
  • Widget-Kontrolle: Ermöglicht sichere Integration externer Widgets und Services durch explizite Whitelist-Verwaltung
  • Phishing-Schutz: Blockiert unerwünschte iframes die gefälschte Login-Formulare oder Credential-Harvesting-Seiten laden könnten

Spezifikation

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

Weitere Spezifikationen

CSP frame-ancestors Directive, CSP child-src Directive