CSP : base-uri
Baseline
Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis 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
Chargement…