CSP : base-uri

La directive HTTP Content-Security-Policy base-uri restreint les URL qui peuvent être utilisées comme valeur d'un élément <base>. Si cette valeur est absente, alors toutes les adresses sont autorisées. Si cette directive est absente, l'agent utilisateur utilisera la valeur de l'élément <base>.

Version de CSP 2
Type de directive Directive de document
Utilisation de default-src par défaut Non, ne pas définir cette directive autorise toutes les URL

Syntaxe

Une ou plusieurs sources peuvent être autorisées pour cette directive :

http
Content-Security-Policy: base-uri <source>;
Content-Security-Policy: base-uri <source> <source>;

Sources

Cette directive utilise en grande partie les mêmes valeurs de source comme arguments que les autres directives CSP : valeurs sources pour CSP (en-US).

On notera toutefois que certaines de ces valeurs n'ont pas de sens pour base-uri, à l'instar des mots-clés 'unsafe-inline' et 'strict-dynamic'.

Exemples

Configuration avec la balise <meta>

html
<meta http-equiv="Content-Security-Policy" content="base-uri 'self'" />

Configuration avec Apache

xml
<IfModule mod_headers.c>
  Header set Content-Security-Policy "base-uri 'self'";
</IfModule>

Configuration avec Nginx

add_header Content-Security-Policy "base-uri 'self';"

Cas de violation

À partir du moment où votre domaine n'est pas example.com, un élément <base> avec son attribut href défini à https://example.com résultera en une violation de CSP.

html
<meta http-equiv="Content-Security-Policy" content="base-uri 'self'" />
<base href="https://example.com/" />

<!--
Error: Refused to set the document's base URI to 'https://example.com/'
because it violates the following Content Security Policy
directive: "base-uri 'self'"
-->

Spécifications

Specification
Content Security Policy Level 3
# directive-base-uri

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi