CSP : base-uri

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 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.

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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
base-uri

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Voir aussi