#19245

CSP Header Inspector and Validator

Dans la même veine que le lien précédent…

Les en-têtes CSP (content security policy : https://developer.mozilla.org/fr/docs/Web/HTTP/CSP ) permettent de spécifier quels contenus peuvent s’afficher/s’éxécuter dans votre machine.

Pour vulgariser à l’extrême (ne faites pas ça), ça permettrait à n’importe qui de poster du JS ou du CSS valide dans vos pages (par exemple dans un commentaire) et ce dernier sera bloqué si les en-têtes interdisent le JS inline, ou le CSS inline.
(faut pas le faire car tous les navigateurs ne supportent pas et il faut partir du principe que le navigateur du visiteur (voire le vôtre) n’a pas forcément ça d’activé).

Si j’ajoute cette en-tête CSP à une page :

default-src 'self'; img-src 'self' data:; script-src 'self' 'unsafe-inline'; form-action 'self';

Cela autorisera par liste blanche :
– le contenu peu importe son type (default-src) en provenance de votre domaine ('self') seulement
– les images (img-src) en provenance de votre domaine (self), des liens data-uri (data:)
– les scripts (script-src) en provenance de votre domaine (self), ainsi que les script inline (unsafe-inline)
– les POST de formulaires (form-action) en provenance de votre domaine (self)

Tout le reste sera inutile, bloqué.

Avec ces règles, si vous mettez une image "src=https://example.com", alors l’image ne chargera pas : bloqué par les règles CSP : seule une image sur votre site, et une image avec data-uri peuvent s’afficher.

Dans les outils de dév de Firefox, vous verrez afficher une alerte relative à CSP.

Le lien que je donne ici permet de tester vos règles CSP (copiez-y mon code ci-dessus, pour tester). Il décortique également tout ça pour y voir clair.

Enfin, si vous utilisez Apache, voilà comment on ajoute une entête dans un .htaccess :

# Extra Security Headers
<IfModule mod_headers.c>
	Header set Content-Security-Policy "<regle csp>" 
</IfModule>

Remplacez <regle csp> par votre règle, virez les « <> », mais laissez les quotes.

Comme ça :

# Extra Security Headers
<IfModule mod_headers.c>
	Header set X-Content-Type-Options nosniff
	Header set Content-Security-Policy "default-src 'self'; img-src 'self' data:; script-src 'self' 'unsafe-inline'; form-action 'self';"
</IfModule>
https://cspvalidator.org/

#19244

A new security header: Feature Policy

Feature Policy is being created to allow site owners to enable and disable certain web platform features on their own pages and those they embed. Being able to restrict the features your site can use is really nice but being able to restrict features that sites you embed can use is an even better protection to have.

Intéressant : il existe des en-têtes HTTP pour spécifier ce que les iframes/scripts ont le droit d’activer sur votre site : géolocalisation, notifications, etc.

https://scotthelme.co.uk/a-new-security-header-feature-policy/