CSP: frame-ancestors
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2016.
Die HTTP-Content-Security-Policy
(CSP) frame-ancestors
Direktive gibt gültige Eltern an, die eine Seite mit <frame>
, <iframe>
, <object>
oder <embed>
einbetten dürfen.
Wenn diese Direktive auf 'none'
gesetzt wird, ähnelt dies der X-Frame-Options
: deny
(welches auch in älteren Browsern unterstützt wird).
Note:
frame-ancestors
ermöglicht es Ihnen anzugeben, welche Quellseite eine Seite einbetten darf. Dies unterscheidet sich vonframe-src
, welches es ermöglicht, anzugeben, von wo aus iframes in einer Seite geladen werden dürfen.
CSP-Version | 2 |
---|---|
Direktivtyp | Navigationsdirektive |
default-src Fallback |
Nein. Wenn diese nicht gesetzt ist, ist alles erlaubt. |
Diese Direktive wird im <meta>
Element nicht unterstützt.
|
Syntax
Eine oder mehrere Quellen können für die frame-ancestors
-Richtlinie festgelegt werden:
Content-Security-Policy: frame-ancestors <source>;
Content-Security-Policy: frame-ancestors <space separated list of sources>;
Quellen
<source> kann eine der folgenden sein:
Hinweis:
Die Syntax der frame-ancestors
-Direktive ähnelt einer Quellenliste anderer Direktiven (z.B. default-src
), erlaubt aber beispielsweise nicht 'unsafe-eval'
oder 'unsafe-inline'
. Sie wird auch nicht auf eine default-src
-Einstellung zurückfallen. Nur die unten aufgelisteten Quellen sind erlaubt:
- <host-source>
-
Internet-Hosts nach Name oder IP-Adresse sowie ein optionales URL-Schema und/oder eine Portnummer, getrennt durch Leerzeichen. Die Adresse der Seite kann ein optionales führendes Wildcard (das Sternchenzeichen,
'*'
) enthalten, und Sie können ein Wildcard (wiederum'*'
) als Portnummer verwenden, was bedeutet, dass alle legalen Ports für die Quelle gültig sind. Einzelne Anführungszeichen um den Host sind nicht erlaubt. Beispiele:http://*.example.com
: Stimmt mit allen Versuchen überein, von einer beliebigen Subdomain von example.com unter Verwendung deshttp:
URL-Schemas zu laden.mail.example.com:443
: Stimmt mit allen Versuchen überein, auf Port 443 auf mail.example.com zuzugreifen.https://store.example.com
: Stimmt mit allen Versuchen überein, auf store.example.com unter Verwendung vonhttps:
zuzugreifen.
Warnung: Wenn kein URL-Schema für eine
host-source
angegeben ist und das iframe von einerhttps
URL geladen wird, muss die URL für die Seite, die das iframe lädt, ebenfallshttps
sein, gemäß dem Abschnitt Entspricht URL ausdrücklichem Treffer im Ursprung mit Umleitungsanzahl? der CSP-Spezifikation. - <scheme-source>
-
Ein Schema wie
http:
oderhttps:
. Der Doppelpunkt ist erforderlich und das Schema sollte nicht in Anführungszeichen gesetzt werden. Sie können auch Datenschemata angeben (nicht empfohlen).data:
Erlaubtdata:
URLs als Inhaltsquelle zu verwenden. Dies ist unsicher; ein Angreifer kann auch beliebigedata:
URLs injizieren. Verwenden Sie diese sparsam und auf keinen Fall für Skripte.mediastream:
Erlaubtmediastream:
URIs als Inhaltsquelle.blob:
Erlaubtblob:
URIs als Inhaltsquelle zu verwenden.filesystem:
Erlaubtfilesystem:
URIs als Inhaltsquelle.
'self'
-
Bezieht sich auf den Ursprung, von dem das geschützte Dokument bereitgestellt wird, einschließlich des gleichen URL-Schemas und der Portnummer. Sie müssen die einfachen Anführungszeichen einschließen. Einige Browser schließen
blob
undfilesystem
ausdrücklich aus Quellenrichtlinien aus. Websites, die diese Inhaltstypen zulassen müssen, können sie mit dem Datenattribut angeben. 'none'
-
Bezieht sich auf die leere Menge; das heißt, keine URLs stimmen überein. Die einfachen Anführungszeichen sind erforderlich.
Beispiele
Content-Security-Policy: frame-ancestors 'none';
Content-Security-Policy: frame-ancestors 'self' https://www.example.org;
Content-Security-Policy: frame-ancestors 'self' https://example.org https://example.com https://store.example.com;
Spezifikationen
Specification |
---|
Content Security Policy Level 3 # directive-frame-ancestors |
Browser-Kompatibilität
BCD tables only load in the browser