CentralCSP
PolitiquesContent-Security-PolicyDirectives

fenced-frame-src

La directive CSP fenced-frame-src contrôle les sources chargeables dans un élément fencedframe. Expérimentale et limitée à Chromium.

Dernière mise à jour:

La directive fenced-frame-src de la politique de sécurité du contenu (CSP) contrôle les sources chargeables dans un élément <fencedframe>. Une fenced frame est un contexte intégré isolé de la page qui l'héberge, utilisé par des API axées sur la confidentialité comme Protected Audience et Shared Storage.

Expérimental, Chromium uniquement

fenced-frame-src est expérimentale et n'est livrée que dans les navigateurs basés sur Chromium. Elle n'est pas Baseline et n'est pas implémentée dans Firefox ni Safari. La directive est liée aux API de confidentialité des fenced frames, encore en évolution, donc son comportement et sa grammaire peuvent changer entre les versions de Chromium. Considérez-la comme instable et vérifiez la section Prise en charge par les navigateurs avant de vous y fier.

Une politique minimale pour cette directive, avec la valeur la plus stricte qu'elle accepte :

Content-Security-Policy: fenced-frame-src https:

Chaîne de repli

Quand fenced-frame-src est absente, le navigateur retombe sur frame-src, puis sur child-src :

fenced-frame-src -> frame-src -> child-src

Une politique qui contraint déjà frame-src contraint donc aussi les fenced frames, sauf si vous définissez fenced-frame-src avec une valeur différente.

Valeurs

fenced-frame-src accepte une liste de sources restreinte. Contrairement aux autres directives fetch, elle n'accepte que la source de schéma https: et le joker * :

ValeurStatutDescription
https:🧪 ExpérimentalFenced frames depuis toute origine HTTPS. Le seul schéma que la directive accepte.
*🧪 ExpérimentalÉquivalent à https: ici, puisqu'une fenced frame doit être servie en HTTPS.

Les sources d'hôte, 'self', 'none' et les sources nonce ou hash ne sont pas acceptées par cette directive.

Exemples

Une politique qui épingle les frames ordinaires sur l'origine de la page tout en autorisant les fenced frames, qui ne peuvent pas être épinglées plus strictement que https: :

Content-Security-Policy: frame-src 'self'; fenced-frame-src https:

Utiliser * au lieu de https: est équivalent pour cette directive, puisqu'une fenced frame doit de toute façon être servie en HTTPS.

Notes de sécurité

Une fenced frame est déjà fortement isolée de la page qui l'intègre, par conception. fenced-frame-src permet à une politique de déclarer, au niveau du document, si des fenced frames peuvent être créées et depuis quel schéma, de sorte qu'une page qui n'utilise pas les API concernées peut les refuser via sa CSP.

Contournements et risques connus

Parce que la directive n'accepte que https: et *, elle ne peut pas restreindre les fenced frames à un hôte précis comme frame-src restreint les frames ordinaires. La fonctionnalité est liée à des API de confidentialité en évolution, donc son comportement exact et la grammaire de la directive peuvent changer entre les versions de Chromium.

Recommandation

Content-Security-Policy: fenced-frame-src https:

Ne définissez fenced-frame-src que si votre page utilise réellement des fenced frames ; https: est la valeur la plus stricte qu'elle accepte. Si vous ne les utilisez pas, n'ajoutez rien, un frame-src strict couvre déjà les fenced frames via la chaîne de repli. Dans les deux cas, gardez frame-src comme la vraie restriction, puisque cette directive ne peut pas épingler d'hôtes et ne fonctionne que dans Chromium.

Reporting

Quand une fenced frame est bloquée dans un navigateur qui la prend en charge, il envoie un report csp-violation avec fenced-frame-src comme effectiveDirective. CentralCSP collecte et agrège ces reports avec le reste de votre trafic CSP, donc vous pouvez surveiller cette surface expérimentale sans configuration supplémentaire.

Prise en charge par les navigateurs

Navigateurs basés sur Chromium uniquement (Chrome, Edge et Opera), et encore expérimentale. Non implémentée dans Firefox ni Safari, et pas dans Baseline. Les navigateurs qui n'implémentent pas les fenced frames ignorent la directive.

Voir aussi

Sources

On this page