Content-Security-Policy : directive sandbox
Baseline
Large disponibilité
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis novembre 2016.
La directive HTTP Content-Security-Policy (CSP) sandbox active un bac à sable (sandbox en anglais) pour les ressources demandées, similaire à l'attribut sandbox des éléments HTML <iframe>.
Elle applique des restrictions aux actions d'une page, dont le fait d'empêcher les fenêtres intrusives (popups en anglais) et l'exécution de greffons et de scripts et de créer une contrainte de même origine.
| Version de CSP | 1.1 / 2 |
|---|---|
| Type de directive | Directive de document |
Cette directive n'est pas prise en charge dans l'élément HTML <meta> ou par l'en-tête Content-Security-Policy-Report-Only.
|
|
Syntaxe
Content-Security-Policy: sandbox;
Content-Security-Policy: sandbox <value>;
Où <value> peut optionnellement être une valeur parmi :
allow-downloads-
Permet de télécharger des fichiers via un élément HTML
<a>ou<area>avec l'attributdownload, ainsi que par la navigation qui mène au téléchargement d'un fichier. Cela fonctionne indépendamment du fait que l'utilisateur·ice ait cliqué sur le lien ou que le code JS l'ait initié sans interaction de l'utilisateur·ice. allow-forms-
Permet à la page de soumettre des formulaires. Si ce mot-clé n'est pas utilisé, le formulaire sera affiché normalement, mais sa soumission ne déclenchera pas la validation des entrées, l'envoi des données à un serveur web ou la fermeture d'une boîte de dialogue.
allow-modals-
Permet à la page d'ouvrir des fenêtres bloquantes avec
Window.alert(),Window.confirm(),Window.print()etWindow.prompt(), tandis que l'ouverture d'un<dialog>est autorisée indépendamment de ce mot-clé. Cela permet également à la page de recevoir l'évènementBeforeUnloadEvent. allow-orientation-lock-
Permet à la ressource de verrouiller l'orientation de l'écran.
allow-pointer-lock-
Permet à la page d'utiliser l'API de verrouillage du pointeur.
allow-popups-
Permet les fenêtres intrusives (créées, par exemple, par
Window.open()outarget="_blank"). Si ce mot-clé n'est pas utilisé, l'affichage des fenêtres intrusives échouera silencieusement. allow-popups-to-escape-sandbox-
Permet à un document en bac à sable d'ouvrir de nouvelles fenêtres sans lui imposer les restrictions du bac à sable. Cela permettra, par exemple, à une publicité tierce d'être sécurisée dans un bac à sable sans imposer les mêmes restrictions à la page vers laquelle la publicité renvoie.
allow-presentation-
Permet aux intégrateurs de contrôler si un cadre intégré peut démarrer une session de présentation.
allow-same-origin-
Permet à une ressource en bac à sable de conserver son origine. Une ressource en bac à sable est autrement traitée comme provenant d'une origine opaque, ce qui garantit qu'elle échouera toujours aux vérifications de la politique de même origine, et donc ne pourra pas accéder à
localstorageetdocument.cookieet à certaines API JavaScript. L'en-têteOrigindes ressources en bac à sable sans le mot-cléallow-same-originestnull. allow-scripts-
Permet à la page d'exécuter des scripts (mais pas de créer des fenêtres intrusives). Si ce mot-clé n'est pas utilisé, cette opération n'est pas autorisée.
allow-storage-access-by-user-activation-
Permet à la ressource de demander l'accès aux capacités de stockage du parent avec l'API d'accès au stockage.
-
Permet à la ressource de naviguer dans le contexte de navigation de niveau supérieur (celui nommé
_top). -
Permet à la ressource de naviguer dans le contexte de navigation de niveau supérieur, mais uniquement si cela est initié par un geste de l'utilisateur·ice.
-
Permet les navigations vers des protocoles non-
httpintégrés au navigateur ou enregistrés par un site web. Cette fonctionnalité est également activée par les mots-clésallow-popupsouallow-top-navigation.
Note :
Les valeurs allow-top-navigation et les valeurs associées n'ont de sens que pour les documents intégrés (comme les iframes enfants). Pour les documents autonomes, ces valeurs n'ont aucun effet, car le contexte de navigation de niveau supérieur est le document lui-même.
Exemples
Content-Security-Policy: sandbox allow-scripts;
Spécifications
| Spécification |
|---|
| Content Security Policy Level 3> # directive-sandbox> |
Compatibilité des navigateurs
Voir aussi
- L'en-tête
Content-Security-Policy - L'attribut
sandboxsur les éléments HTML<iframe>