Une page contient du contenu mixte lorsque son code HTML initial est chargé via une connexion HTTPS HTTPS, mais que d’autres ressources (telles que des images, des vidéos, des feuilles de style et des scripts) sont chargées via une connexion HTTP non sécurisée. Le nom fait référence au mélange de contenu HTTP et HTTPS sur une seule page.
Le fait de demander des sous-ressources à l'aide du protocole HTTP non sécurisé affaiblit la sécurité de la page, car ces requêtes sont vulnérables aux attaques de l'homme du milieu, dans lesquelles un pirate écoute une connexion réseau et affiche ou modifie la communication entre deux parties. À l'aide de ces ressources, les pirates peuvent suivre les utilisateurs et remplacer le contenu d'un site Web. Dans le cas de contenu mixte actif, ils peuvent prendre le contrôle total de la page, et pas seulement des ressources non sécurisées.
Bien que de nombreux navigateurs signalent des avertissements de contenu mixte à l'utilisateur, le rapport est souvent trop tardif : les requêtes non sécurisées ont déjà été effectuées et la sécurité de la page est compromise.
La plupart des navigateurs bloquent désormais le contenu mixte pour des raisons de sécurité. Remplacez les requêtes de contenu non sécurisé par du contenu sécurisé pour vous assurer que votre page continue de se charger correctement.
Les deux types de contenu mixte
Il existe deux types de contenu mixte : actif et passif.
Le contenu mixte passif, y compris les images, les vidéos et l'audio, n'interagit pas avec le reste de la page. Par conséquent, une attaque de l'homme du milieu est limitée dans ce qu'elle peut faire si elle intercepte ou modifie ce contenu.
Le contenu mixte actif interagit avec la page dans son ensemble. Cela inclut les scripts, les feuilles de style, les iFrames et tout autre code que le navigateur peut télécharger et exécuter. Les attaques sur le contenu mixte actif permettent à un pirate de faire presque n'importe quoi sur la page.
Contenu mixte passif
Le contenu mixte passif présente moins de risques que le contenu mixte actif, mais le risque existe toujours. Par exemple, un pirate peut :
- Intercepter les requêtes HTTP pour les images de votre site et les échanger ou les remplacer.
- Remplacer les images des boutons afin que les utilisateurs les confondent et, par exemple, suppriment le contenu qu'ils souhaitaient enregistrer.
- Dégrader votre site en remplaçant vos images par du contenu pornographique.
- Remplacer les images de vos produits par des annonces pour autre chose.
Même si le pirate ne modifie pas le contenu de votre site, il peut suivre les utilisateurs via des requêtes de contenu mixte. Il peut également savoir quelles pages un utilisateur consulte et quels produits il regarde en fonction des images ou d'autres ressources chargées par le navigateur.
Si du contenu mixte passif est présent, la plupart des navigateurs indiquent dans la barre d'adresse que la page n'est pas sécurisée, même si la page elle-même est chargée via HTTPS.
Jusqu'à récemment, le contenu mixte passif était chargé dans tous les navigateurs, car le bloquer aurait endommagé de nombreux sites Web. Cela commence à changer. Il est donc essentiel de mettre à jour toutes les instances de contenu mixte sur votre site.
Dans certains cas, Chrome met automatiquement à niveau le contenu mixte passif. Cela signifie que si un élément a été codé en dur en tant que HTTP, mais qu'il est disponible via HTTPS, le navigateur charge la version HTTPS. S'il n'existe pas de version sécurisée, l'élément n'est pas chargé.
Chaque fois que Chrome détecte du contenu mixte ou met automatiquement à niveau du contenu mixte passif, il enregistre des messages détaillés dans l'onglet Problèmes des outils pour les développeurs afin de vous conseiller sur la résolution de votre problème spécifique.
Contenu mixte actif
Le contenu mixte actif représente une menace plus importante que le contenu mixte passif. Un pirate peut intercepter et réécrire du contenu actif, en l'utilisant pour prendre le contrôle total de votre page, voire de l'ensemble de votre site Web. Il peut ainsi modifier n'importe quel aspect de la page, y compris afficher un contenu différent, voler les mots de passe des utilisateurs ou d'autres identifiants de connexion, voler les cookies de session des utilisateurs ou rediriger l'utilisateur vers un autre site.
Étant donné que les risques liés au contenu mixte actif sont très élevés, la plupart des navigateurs bloquent déjà ce type de contenu par défaut pour protéger les utilisateurs, mais le comportement varie selon les fournisseurs et les versions de navigateur. Dans Chrome, vous pouvez afficher le contenu bloqué dans l'onglet Problèmes des outils pour les développeurs.
Spécification du contenu mixte
Les navigateurs suivent la spécification du contenu mixte, qui définit les catégories contenu éventuellement bloqué et contenu bloqué.
Une ressource est considérée comme du contenu éventuellement bloqué "lorsque le risque d'autoriser son utilisation en tant que contenu mixte est inférieur au risque de rupture de parties importantes du Web". Il s'agit d'un sous-ensemble de contenu mixte passif.
Tout contenu mixte qui n'est pas éventuellement bloqué est considéré comme bloqué, et doit être bloqué par le navigateur.
Ces dernières années, l'utilisation de HTTPS a considérablement augmenté, et est devenue la valeur par défaut sur le Web. Il est donc plus facile pour les navigateurs d'envisager de bloquer tout le contenu mixte, même les types de sous-ressources définis dans la spécification de contenu mixte comme éventuellement bloqués.
Anciens navigateurs
Certains visiteurs peuvent utiliser des navigateurs plus anciens. Les différentes versions de navigateur de différents fournisseurs traitent le contenu mixte différemment. Dans le pire des cas, les anciens navigateurs et versions ne bloquent aucun contenu mixte, ce qui est dangereux pour l'utilisateur.
En chargeant toutes vos ressources de manière sécurisée et en résolvant vos problèmes de contenu mixte, vous vous assurez que votre contenu est visible et protégez les utilisateurs contre les contenus dangereux que les anciens navigateurs pourraient ne pas bloquer.