Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Content-Security-Policy : directive default-src

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 août 2016.

La directive HTTP Content-Security-Policy (CSP) default-src sert de valeur par défaut pour les autres directives de récupération CSP. Pour chacune des directives suivantes, l'agent utilisateur consultera la directive default-src et utilisera sa valeur pour la directive demandée si celle-ci est absente :

Version de CSP 1
Type de directive Directive de récupération

Syntaxe

http
Content-Security-Policy: default-src 'none';
Content-Security-Policy: default-src <source-expression-list>;

Cette directive peut avoir l'une des valeurs suivantes :

'none'

Aucune ressource de ce type ne peut être chargée. Les guillemets simples sont obligatoires.

<source-expression-list>

Une liste d'expressions de source séparées par des espaces. Les ressources de ce type peuvent être chargées si elles correspondent à l'une des expressions de source données. Pour cette directive, toutes les valeurs d'expression de source listées dans Syntaxe des directives de récupération sont applicables.

Exemples

Absence d'héritage avec default-src

S'il y a d'autres directives définies, default-src ne les affecte pas. Soit l'en-tête suivant :

http
Content-Security-Policy: default-src 'self'; script-src https://exemple.com

Est identique à :

http
Content-Security-Policy: connect-src 'self';
                         font-src 'self';
                         frame-src 'self';
                         img-src 'self';
                         manifest-src 'self';
                         media-src 'self';
                         object-src 'self';
                         script-src https://exemple.com;
                         style-src 'self';
                         worker-src 'self'

Problème de blocage des sprites SVG avec default-src: none dans Firefox

Note : Ce problème a été corrigé dans Firefox 132 ; voir bogue 1773976 (angl.).

Lors de la création d'une CSP, vous pouvez commencer par default-src 'none' pour verrouiller le chargement de toutes les ressources, puis ajouter d'autres directives pour ouvrir la politique, vous permettant de charger uniquement les ressources dont vous avez besoin. Par exemple, pour autoriser le chargement d'images uniquement depuis la même origine :

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

Cependant, il y a un problème ici. Si vous intégrez des sprites SVG définis dans des fichiers externes avec l'élément <use>, par exemple :

svg
<svg>
  <use href="/images/icons.svg#icon"/>
</svg>

Vos images SVG seront bloquées dans Firefox si vous avez une politique default-src 'none' définie. Firefox ne traite pas le SVG comme une image intégrée comme le font les autres navigateurs, donc img-src 'self' ne permettra pas de les charger. Vous devez utiliser default-src 'self' si vous voulez que vos sprites externes se chargent dans Firefox.

Alternativement, si la politique default-src 'none' est une exigence stricte, vous pouvez inclure les sprites SVG en ligne dans la page HTML :

html
<body>
  <svg style="display: none">
    <symbol id="icon" viewBox="0 0 24 24">
      <path d="…" />
    </symbol>
  </svg>
  …
  <svg>
    <use href="#icon" />
  </svg>
</body>

Spécifications

Spécification
Content Security Policy Level 3
# directive-default-src

Compatibilité des navigateurs

Voir aussi