# block-all-mixed-content (/fr/docs/web-security/policies/content-security-policy/directives/block-all-mixed-content)



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.

<Callout type="error" title="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`](/fr/docs/web-security/policies/content-security-policy/directives/upgrade-insecure-requests) pour réécrire les références non sûres en HTTPS. Voir [Prise en charge par les navigateurs](#prise-en-charge-par-les-navigateurs).
</Callout>

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`](/fr/docs/web-security/policies/content-security-policy/directives/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 :

```http
Content-Security-Policy: upgrade-insecure-requests
```

## Chaîne de repli [#chaî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 [#valeurs]

Aucune. C'est une directive drapeau : sa présence active le comportement, et elle ne prend aucune valeur.

## Exemples [#exemples]

```http
Content-Security-Policy:
    default-src 'self';
    block-all-mixed-content
```

## Notes de sécurité [#notes-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 [#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](/tools/csp-evaluator).

## Recommandation [#recommandation]

```diff
- Content-Security-Policy: block-all-mixed-content
+ Content-Security-Policy: upgrade-insecure-requests
```

N'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`](/fr/docs/web-security/policies/content-security-policy/directives/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 [#reporting]

Une requête bloquée par la directive émet un [rapport `csp-violation`](/fr/docs/web-security/reporting-api/reports/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 [#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 [#voir-aussi]

* [Directive upgrade-insecure-requests](/fr/docs/web-security/policies/content-security-policy/directives/upgrade-insecure-requests)
* [Header Content-Security-Policy avec Reporting-Endpoints](/fr/docs/web-security/reporting-api/headers/reporting-endpoints)
* [Mots-clés et valeurs CSP](/fr/docs/web-security/policies/content-security-policy/values/csp-keywords)

## Sources [#sources]

* [MDN, CSP block-all-mixed-content](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Security-Policy/block-all-mixed-content)
* [W3C, Content Security Policy Level 3](https://www.w3.org/TR/CSP3/)
* [W3C, Mixed Content](https://www.w3.org/TR/mixed-content/)
