block-all-mixed-content
La directive CSP obsolète block-all-mixed-content bloque toute sous-ressource HTTP sur une page HTTPS. Utilisez plutôt upgrade-insecure-requests.
Dernière mise à jour:
La directive block-all-mixed-content empêche une page HTTPS de charger toute sous-ressource en clair http://. Elle bloque la requête purement et simplement plutôt que de la mettre à niveau.
Obsolète
block-all-mixed-content est obsolète. Les navigateurs bloquent désormais le contenu mixte actif par défaut et mettent à niveau automatiquement le contenu mixte passif, donc la directive est redondante. Utilisez plutôt upgrade-insecure-requests pour réécrire les références non sûres en HTTPS. Voir Prise en charge par les navigateurs.
Sur une page HTTPS, elle empêche toute requête de sous-ressource qui utiliserait http://, y compris le contenu passif comme les images que les navigateurs autorisaient historiquement. La requête est bloquée, pas réécrite.
Cela diffère d'upgrade-insecure-requests, qui réécrit le schéma en https:// et laisse la requête se poursuivre si une version sécurisée existe. Bloquer casse la ressource ; mettre à niveau tente de la charger de façon sécurisée.
Utilisez plutôt le remplacement :
Content-Security-Policy: upgrade-insecure-requestsChaîne de repli
block-all-mixed-content n'a pas de repli. default-src ne la couvre pas, donc elle ne s'applique que lorsqu'elle est listée explicitement.
Valeurs
Aucune. C'est une directive drapeau : sa présence active le comportement, et elle ne prend aucune valeur.
Exemples
Content-Security-Policy:
default-src 'self';
block-all-mixed-contentNotes de sécurité
Le comportement que cette directive ajoutait autrefois est désormais le comportement par défaut du navigateur. Les navigateurs modernes bloquent automatiquement le contenu mixte actif (scripts, frames, fetch) et mettent à niveau ou bloquent le contenu mixte passif (images, médias) sans aucune directive. L'ajouter change peu de choses sur un navigateur actuel, et elle peut casser du contenu passif qui aurait sinon été mis à niveau automatiquement.
Contournements et risques connus
Comme elle bloque au lieu de mettre à niveau, une ressource qui n'a qu'une URL HTTP échoue simplement à se charger, sans repli. La directive ne fait rien pour les navigations de premier niveau cross-origin. Vous pouvez passer une politique en revue à la recherche de directives redondantes ou obsolètes avec l'évaluateur CSP.
Recommandation
- Content-Security-Policy: block-all-mixed-content
+ Content-Security-Policy: upgrade-insecure-requestsN'ajoutez pas block-all-mixed-content aux nouvelles politiques, et retirez-la des politiques existantes. La gestion par défaut du contenu mixte bloque déjà ce qu'elle bloquait, et upgrade-insecure-requests garde les anciennes références http:// fonctionnelles en les réécrivant au lieu de les casser (MDN marque la directive comme obsolète).
Reporting
Une requête bloquée par la directive émet un rapport csp-violation nommant block-all-mixed-content. Sur les navigateurs actuels, la gestion par défaut du contenu mixte intervient généralement en premier, alors attendez-vous à peu de rapports issus de cette directive elle-même.
Prise en charge par les navigateurs
Historiquement prise en charge sur Chromium, Firefox et Safari, mais obsolète et largement supplantée par la gestion par défaut du contenu mixte. Préférez upgrade-insecure-requests.
Voir aussi
- Directive upgrade-insecure-requests
- Header Content-Security-Policy avec Reporting-Endpoints
- Mots-clés et valeurs CSP
Sources
upgrade-insecure-requests
La directive CSP upgrade-insecure-requests réécrit en HTTPS les URL HTTP non sûres de sous-ressource et de navigation avant leur récupération.
require-trusted-types-for
La directive CSP require-trusted-types-for impose Trusted Types aux sinks de DOM XSS et bloque les affectations de chaînes brutes aux API dangereuses.