X-Content-Type-Options

L'entête X-Content-Type-Options est un marqueur utilisé par le serveur pour indiquer que les types MIME annoncés dans les en-têtes Content-Type ne doivent pas être modifiés ou et suivis. Cela permet de se détacher du sniffing de type MIME, ou, en d'autres termes, c'est une façon de dire que les webmasters savaient ce qu'ils faisaient.

Cet en-tête a été introduit par Microsoft dans IE 8 comme un moyen pour les webmasters de bloquer le reniflement de contenu qui se passait et pouvait transformer les types MIME non exécutables en types MIME exécutables. Depuis, d'autres navigateurs l'ont introduit, même si leurs algorithmes de reniflage MIME étaient moins agressifs.

À partir de Firefox 72, la désactivation du reniflement MIME est également appliqué aux documents de premier niveau si un Content-type est fourni. Les pages web HTML qui sont servies avec un type MIME différent de text/html, peuvent alors être juste téléchargées au lieu d'êtres rendues (interprétées et affichées par le navigateur). Assurez vous de valoriser correctement ces 2 en-têtes.

Les testeurs de sécurité du site s'attendent généralement à ce que cet en-tête soit défini.

Note : X-Content-Type-Options ne s'appliquent qu'au blocage des demandes par nosniff pour les destinations de demandes de "script" et "style". Il permet également le blocage en lecture croisé (CORB) pour les fichiers HTML, TXT, JSON, et XML (à l'exception des images SVG image/svg+xml).

Header type Response header
Forbidden header name Non

Syntaxe

X-Content-Type-Options: nosniff

Directives

nosniff

Bloque une requête si la destination de la requête est de type

  • "style" et le MIME n'est pas de type text/css, ou
  • "script" et le MIME n'est pas de type JavaScript MIME type

Permet le blocage de la lecture croisée pour les types MIME

  • text/html
  • text/plain
  • text/json, application/json ou tout autre type avec une extension JSON: */*+json
  • text/xml, application/xml ou tout autre type avec une extension XML: */*+xml (hors image/svg+xml)

Spécifications

Specification
Fetch Standard
# x-content-type-options-header

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi