Qu'est-ce que le contenu mixte ?

Le contenu mixte se produit lorsque le code HTML initial est chargé via une connexion HTTPS sécurisée, mais que d'autres ressources (telles que des images, des vidéos, des feuilles de style ou des scripts) sont chargées via une connexion HTTP non sécurisée. On parle alors de contenu mixte, car les contenus HTTP et HTTPS sont chargés pour afficher la même page, et la requête initiale était sécurisée sur HTTPS.

Demander des sous-ressources à l'aide du protocole HTTP non sécurisé affaiblit la sécurité de l'ensemble de la page, car ces requêtes sont vulnérables aux attaques sur le chemin, où un pirate informatique écoute une connexion réseau et voit ou modifie la communication entre deux parties. À l'aide de ces ressources, les pirates informatiques peuvent suivre les utilisateurs et remplacer le contenu d'un site Web. Dans le cas d'un contenu mixte actif, ils prennent le contrôle total de la page, et pas seulement des ressources non sécurisées.

Bien que de nombreux navigateurs signalent à l'utilisateur des avertissements de contenu mixte, il est trop tard pour que cela se produise : les requêtes non sécurisées ont déjà été effectuées et la sécurité de la page est compromise.

C'est pourquoi les navigateurs bloquent de plus en plus le contenu mixte. Si votre site présente du contenu mixte, corrigez-le pour que le chargement continue, à mesure que les navigateurs deviennent plus stricts.

Les deux types de contenu mixte

Il existe deux types de contenu mixte: actif et passif.

Le contenu mixte passif fait référence à du contenu qui n'interagit pas avec le reste de la page. Ainsi, une attaque de type "homme du milieu" est limitée à ce qu'elle peut faire si elle intercepte ou modifie ce contenu. Le contenu mixte passif désigne les images, les vidéos et les contenus audio.

Le contenu mixte actif interagit avec la page dans son ensemble et permet aux pirates informatiques de faire presque tout ce qu'elle contient. Le contenu mixte actif inclut des scripts, des feuilles de style, des iFrames et d'autres codes que le navigateur peut télécharger et exécuter.

Contenu mixte passif

Le contenu mixte passif est considéré comme moins problématique, mais représente une menace de sécurité pour votre site et vos utilisateurs. Par exemple, un pirate informatique peut intercepter les requêtes HTTP pour des images de votre site et échanger ou remplacer ces images. Il peut également permuter les images des boutons Enregistrer et Supprimer, ce qui pousse vos utilisateurs à supprimer du contenu sans avoir l'intention de le faire, remplacer les schémas de produits par du contenu obscène ou pornographique, afficher votre site, ou remplacer les images de vos produits par des annonces pour un autre site ou produit.

Même si le pirate informatique ne modifie pas le contenu de votre site, il peut suivre les utilisateurs via des requêtes de contenu mixte. Grâce aux images ou aux autres ressources chargées par le navigateur, le pirate informatique peut identifier les pages qu'un utilisateur consulte et les produits qu'il consulte.

Si un contenu mixte passif est présent, la plupart des navigateurs indiquent dans la barre d'URL que la page n'est pas sécurisée, même si elle a été chargée via HTTPS. Vous pouvez observer ce comportement avec cette démonstration qui contient des exemples de contenu mixte passif.

Jusqu'à récemment, le contenu mixte passif était chargé dans tous les navigateurs, car le blocage aurait entraîné le dysfonctionnement de nombreux sites Web. Cela commence maintenant à changer. Vous devez donc impérativement mettre à jour toutes les instances de contenu mixte sur votre site.

Chrome est en train de déployer une mise à niveau automatique du contenu mixte passif dans la mesure du possible. La mise à niveau automatique signifie que si l'élément est disponible via HTTPS, mais qu'il a été codé en dur en tant que HTTP, le navigateur charge la version HTTPS. Si aucune version sécurisée n'est trouvée, l'élément ne se charge pas.

Chaque fois qu'il détecte un contenu mixte ou met à niveau automatiquement ce type de contenu, Chrome enregistre des messages détaillés dans l'onglet Issues (Problèmes) des outils de développement pour vous guider dans la résolution du problème spécifique.

L'onglet "Problèmes" des outils pour les développeurs Chrome contient des informations détaillées sur le problème de contenu mixte et comment le résoudre.

Contenu mixte actif

Le contenu mixte actif présente une menace plus importante que le contenu mixte passif. Un pirate informatique peut intercepter et réécrire du contenu actif, prenant ainsi le contrôle total de votre page, voire de l'ensemble de votre site Web. Cela permet au pirate informatique de modifier tout élément de la page, y compris l'affichage de contenus entièrement différents, le vol de mots de passe ou d'autres identifiants de connexion, le vol de cookies de session utilisateur ou la redirection complète de l'utilisateur vers un site différent.

En raison de la gravité de cette menace, la plupart des navigateurs bloquent déjà ce type de contenu par défaut afin de protéger les utilisateurs, mais les fonctionnalités varient selon les fournisseurs et les versions des navigateurs.

Cette autre démonstration contient des exemples de contenu mixte actif. Chargez l'exemple via HTTP pour voir le contenu bloqué lorsque vous chargez l'exemple via HTTPS. Le contenu bloqué est également détaillé dans l'onglet Issues (Problèmes).

L'onglet "Problèmes" des outils pour les développeurs Chrome contient des informations détaillées sur le problème de contenu mixte et comment le résoudre.

Spécification de contenu mixte

Les navigateurs respectent la spécification de contenu mixte, qui définit les catégories de contenu pouvant être bloqué de manière facultative et de contenu bloquable.

D'après la spécification, une ressource est considérée comme du contenu pouvant être bloqué de manière facultative "lorsque le risque d'autoriser son utilisation en tant que contenu mixte est compensé par le risque de briser une partie significative du Web". Il s'agit d'un sous-ensemble de la catégorie de contenu mixte passif décrite ci-dessus.

Tout le contenu qui n'est pas peut être bloqué est considéré comme bloquable et doit être bloqué par le navigateur.

Ces dernières années, l'utilisation du protocole HTTPS a considérablement augmenté et est devenu le paramètre par défaut évident sur le Web. Il est ainsi plus facile pour les navigateurs d'envisager de bloquer tout contenu mixte, même les types de sous-ressources définis dans la spécification de contenu mixte comme blocables de manière facultative. C'est pourquoi Chrome adopte une approche plus stricte concernant ces sous-ressources.

Navigateurs plus anciens

N'oubliez pas que les visiteurs de votre site Web n'utilisent pas tous les navigateurs les plus récents. Chaque version de chaque fournisseur de navigateurs traite le contenu mixte différemment. Dans le pire des cas, les anciens navigateurs et versions ne bloquent pas du tout le contenu mixte, ce qui est très dangereux pour l'utilisateur.

En résolvant les problèmes liés au contenu mixte, vous vous assurez que votre contenu s'affiche dans les nouveaux navigateurs. Vous contribuez également à protéger les utilisateurs contre les contenus dangereux qui ne sont pas bloqués par d'anciens navigateurs.