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 janvier 2020.
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 :
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>
<meta http-equiv="Content-Security-Policy" content="base-uri 'self'" />
Configuration avec Apache
<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.
<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
Loading…