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.
La directive HTTP Content-Security-Policy
(CSP) frame-ancestors
spécifie les parents pouvant intégrer une page en utilisant <frame>
, <iframe>
, <object>
, <embed>
, ou <applet>
.
Définir cette directive à 'none'
est comparable à len-tête HTTP X-Frame-Options
: deny
(aussi supporté sur les anciens navigateurs).
CSP version | 2 |
---|---|
Directive type | Navigation directive |
default-src fallback |
No. Not setting this allows anything. |
This directive is not supported in the <meta>
element.
|
Syntaxe
Une ou plusieurs sources peuvent être autorisées pour cette directive :
Content-Security-Policy: frame-ancestors <source>; Content-Security-Policy: frame-ancestors <source> <source>;
Sources
La <source> peut être une des suivantes :
Note : The frame-ancestors
directive's syntax is similar to a source list of other directives (e.g. default-src
), but doesn't allow 'unsafe-eval'
or 'unsafe-inline'
for example. It will also not fall back to a default-src
setting. Only the sources listed below are allowed:
- <host-source>
-
Des hôtes Internet par leur nom de domaine ou adresse IP, aussi bien qu'un protocole et/ou un numéro de port. L'adresse du site peut inclure un caractère de remplacement optionnel (l'astérisque
'*'
), qui ne peut être utilisée que pour indiquer un sous-domaine ou que tous les ports existants sont des sources valides. Vous ne devez pas mettre de guillemets simples. Exemples :-
http://*.example.com
: correspondra à toutes les tentatives d'accès pour tous les sous-domaines de example.com via le protocolehttp:
. -
mail.example.com:443
: correspondra à toutes les tentatives d'accès sur le port 443 de mail.example.com. -
https://store.example.com
: correspondra à toutes les tentatives d'accès à store.example.com via le protocolehttps:
.
Attention : Si aucun schéma d'URL n'est spécifié comme
host-source
et que l'<iframe>
est chargée via une URLhttps:
, la page chargeant l'iframe doit aussi être chargée enhttps:
, selon la spécification du W3C sur les correspondances de valeurs de sources. -
- <scheme-source>
-
Un protocole tel que
http:
orhttps:
. Les deux-points sont nécessaires et vous ne devez pas mettre de guillemets. Vous pouvez aussi spécifier des schémas de données bien que ce ne soit pas recommandé.data:
Autorise les URIdata:
à être utilisées comme source de contenu. Cette pratique manque de sécurité ; une personne malveillante peut aussi injecter des URI data: arbitraires. Utilisez cette valeur avec parcimonie et certainement pas pour des scripts.mediastream:
permet aux URImediastream:
d'être utilisées comme source de contenu.blob:
permet aux URIblob:
d'être utilisées comme source de contenu.filesystem:
Allows URIfilesystem:
d'être utilisées comme source de contenu.
'self'
-
Cette valeur fait référence au domaine dont est originaire le document protégé, y compris le protocole et le numéro de port. Vous devez mettre cette valeur entre guillemets. Certains navigateurs excluent spécifiquement les valeurs
blob
etfilesystem
des directives de source. Les sites nécessitant une permission pour ces types de contenu peuvent les spécifier en utilisant l'attribut Data. 'none'
-
Aucune source n'est admise. Vous devez mettre cette valeur entre guillemets.
Exemples
Content-Security-Policy: frame-ancestors 'none';
Content-Security-Policy: frame-ancestors 'self' https://www.example.org;
Spécifications
Specification |
---|
Content Security Policy Level 3 # directive-frame-ancestors |
Compatibilité des navigateurs
BCD tables only load in the browser