CHECKCYBER

X-Content-Type-Options: nosniff expliqué simplement

Quand votre serveur envoie un fichier, il annonce son type via l'en-tête Content-Type (par exemple image/png ou text/css). Mais historiquement, pour « réparer » les serveurs mal configurés, les navigateurs se sont mis à ignorer parfois cette déclaration et à deviner eux-mêmes le type réel d'après le contenu des premiers octets du fichier. Ce comportement s'appelle le MIME sniffing.

Le problème : cette « devinette » peut transformer un fichier anodin en arme. Un fichier que vous servez comme une image ou un document peut être réinterprété par le navigateur comme du HTML ou du JavaScript, et donc exécuté. L'en-tête X-Content-Type-Options: nosniff désactive ce comportement et force le navigateur à respecter strictement le type que vous déclarez. C'est l'une des protections les plus simples et les plus sûres à déployer.

Le risque du MIME sniffing, concrètement

Prenons un site qui autorise les visiteurs à téléverser une photo de profil. Un attaquant téléverse un fichier nommé avatar.png qui ressemble à une image mais contient en réalité du code HTML et du JavaScript. Votre serveur le stocke et le ressert plus tard avec le type image/png. Sans nosniff, le navigateur d'une victime peut « renifler » le contenu, conclure que c'est du HTML, et exécuter le script qu'il contient dans le contexte de votre domaine : c'est une attaque XSS stockée.

Autre scénario classique : un fichier .css ou .js servi avec un mauvais type MIME mais réinterprété comme du HTML exécutable. Dans tous les cas, nosniff coupe court : le navigateur traite le fichier exactement comme annoncé, sans l'exécuter s'il n'est pas censé l'être.

Pourquoi c’est une protection sans contrepartie

Contrairement à la CSP, qui demande du réglage, ou à HSTS, qui engage votre domaine sur le long terme, nosniff n'a quasiment aucun effet de bord. La seule condition pour qu'il ne casse rien est que votre serveur renvoie déjà les bons types MIME pour vos fichiers — ce qui est le comportement par défaut de tous les serveurs et CMS modernes.

C'est pourquoi cet en-tête fait partie du socle minimal recommandé pour tout site, au même titre que la redirection HTTPS. Il se déploie une fois et se fait oublier.

Activer nosniff

L'activation tient en une ligne. Voici la configuration pour les environnements les plus courants.

Apache — .htaccess (hébergement mutualisé type o2switch)
<IfModule mod_headers.c>
  Header always set X-Content-Type-Options "nosniff"
</IfModule>
nginx
add_header X-Content-Type-Options "nosniff" always;
WordPress — functions.php du thème enfant
add_action('send_headers', function () {
    header('X-Content-Type-Options: nosniff');
});

Vérifier et éviter les pièges

Pour vérifier, relancez un audit CheckCyber ou ouvrez les outils de développement du navigateur (onglet Réseau → en-têtes de réponse) : la ligne X-Content-Type-Options: nosniff doit apparaître sur toutes vos pages et vos ressources.

Le seul piège réel : si votre site sert des fichiers avec un type MIME erroné (par exemple une feuille de style envoyée en text/plain), nosniff empêchera le navigateur de la « rattraper » et la ressource sera ignorée. Ce n'est pas un défaut de nosniff mais un signal qu'une configuration MIME de votre serveur doit être corrigée à la source.

N'oubliez pas le mot-clé always sous Apache/nginx, afin que l'en-tête soit aussi présent sur les réponses d'erreur, et déclarez-le à un seul endroit pour éviter les doublons contradictoires.

[ FAQ // QUESTIONS FRÉQUENTES ]

Y a-t-il un risque à activer nosniff ?

Quasiment aucun, à condition que votre serveur renvoie les bons types MIME pour vos fichiers — ce qui est le cas par défaut. C'est l'un des en-têtes les plus sûrs à déployer, à activer systématiquement.

nosniff protège-t-il à lui seul contre le XSS ?

Non. Il ferme un vecteur précis (l'exécution de fichiers réinterprétés), mais il fait partie d'une défense en profondeur. Combinez-le avec une Content-Security-Policy, l'échappement des données affichées et la validation des fichiers téléversés.

Faut-il une valeur autre que « nosniff » ?

Non. nosniff est la seule valeur valide et utile de cet en-tête. Toute autre valeur est simplement ignorée par les navigateurs.

[ PASSEZ À L’ACTION ]

Votre site est-il concerné ?

Lancez un audit de surface gratuit et obtenez en quelques secondes la liste exacte de vos failles, avec le correctif pour chacune. Anonyme, sans inscription.

▶ Auditer mon site

[ À LIRE AUSSI ]

[ CheckCyber // MIS À JOUR LE 2026-06-29 ]