372 votes

Qu'est-ce que "X-Content-Type-Options=nosniff" ?

J'effectue des tests de pénétration sur mon serveur local avec OWASP ZAP, et le message suivant s'affiche en permanence :

L'en-tête Anti-MIME-Sniffing X-Content-Type-Option 'nosniff'

Cette vérification est spécifique à Internet Explorer 8 et Google Chrome. Assurez-vous que chaque page définit un en-tête Content-Type et que l'en-tête X-CONTENT-TYPE-OPTIONS si l'en-tête Content-Type est inconnu.

Je n'ai aucune idée de ce que cela signifie, et je n'ai rien trouvé en ligne. J'ai essayé d'ajouter :

<meta content="text/html; charset=UTF-8; X-Content-Type-Options=nosniff" http-equiv="Content-Type" />

mais je reçois toujours l'alerte.

Quelle est la manière correcte de régler le paramètre ?

212voto

Remi Gacogne Points 1874

Il empêche le navigateur de renifler le type MIME. La plupart des navigateurs respectent désormais cet en-tête, notamment Chrome/Chromium, Edge, IE >= 8.0, Firefox >= 50 et Opera >= 13. Voir :

https://blogs.msdn.com/b/ie/archive/2008/09/02/ie8-security-part-vi-beta-2-update.aspx?Redirected=true

L'envoi du nouvel en-tête de réponse X-Content-Type-Options avec la valeur nosniff empêchera Internet Explorer de renifler une réponse à l'aide de MIME en dehors du type de contenu déclaré.

EDITAR:

Il s'agit d'un en-tête HTTP, et non d'une option de métabalise HTML.

Voir aussi : http://msdn.microsoft.com/en-us/library/ie/gg622941(v=vs.85).aspx

27 votes

Vous devez mentionner que c'est for servers hosting untrusted content . Pour les sites web qui n'affichent pas de contenu provenant des téléchargements des utilisateurs, il n'est pas nécessaire de définir ce paramètre.

17 votes

@machineaddict, Faux . Le reniflage se produit indépendamment du fait que le contenu soit fiable ou non. Voir security.stackexchange.com/a/11761/2379 . Il peut endommager votre site de manière subtile. Désactivez toujours le reniflage si vous n'aimez pas les surprises.

57 votes

Je pense que vous avez manqué la partie "Qu'est-ce que le reniflage de type MIME ?".

193voto

Grokify Points 7043

Description

La définition de l'option X-Content-Type-Options L'en-tête de réponse HTTP à nosniff demande aux navigateurs de désactiver contenu ou reniflage MIME qui est utilisé pour remplacer la réponse Content-Type pour deviner et traiter les données en utilisant un type de contenu implicite. Bien que cela puisse être pratique dans certains scénarios, cela peut également conduire à certaines attaques énumérées ci-dessous. Configurer votre serveur pour qu'il renvoie l'en-tête X-Content-Type-Options En-tête de réponse HTTP fixé à nosniff indiquera aux navigateurs qui prennent en charge le reniflage de MIME d'utiliser le fichier Content-Type et ne pas interpréter le contenu comme un type de contenu différent.

Support des navigateurs

En X-Content-Type-Options L'en-tête de réponse HTTP est pris en charge par Chrome, Firefox et Edge ainsi que par d'autres navigateurs. La dernière prise en charge par les navigateurs est disponible sur le tableau de compatibilité des navigateurs du Mozilla Developer Network (MDN) pour X-Content-Type-Options :

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options

Attaques contrées

  1. Attaque par confusion MIME permet des attaques via des sites à contenu généré par l'utilisateur en autorisant les utilisateurs à télécharger un code malveillant qui est ensuite exécuté par les navigateurs qui interprètent les fichiers en utilisant des types de contenu alternatifs, par exemple implicites. application/javascript vs. explicite text/plain . Il peut en résulter une "Attaque par téléchargement (drive-by download) qui est un vecteur d'attaque courant pour l'hameçonnage. Les sites qui hébergent du contenu généré par l'utilisateur devraient utiliser cet en-tête pour protéger leurs utilisateurs. Ceci est mentionné par VeraCode y OWASP qui dit ce qui suit :

    Cela réduit l'exposition aux attaques par téléchargement (drive-by download) et aux sites proposant du contenu téléchargé par l'utilisateur qui, par une dénomination astucieuse, pourrait être traité par MSIE comme des fichiers exécutables ou des fichiers HTML dynamiques.

  2. Liens directs non autorisés peut également être activée par Content-Type renifler. En créant des hotlinks vers des sites contenant des ressources destinées à un usage particulier, par exemple la visualisation, les applications peuvent s'appuyer sur le reniflage de type de contenu et générer beaucoup de trafic sur des sites destinés à un autre usage, ce qui peut être contraire à leurs conditions de service, par exemple. GitHub affiche du code JavaScript à des fins de visualisation, mais pas à des fins d'exécution :

    Certains utilisateurs non humains (à savoir les ordinateurs) ont pris l'habitude d'établir des "liens chauds" avec les ressources via la fonction d'affichage brut, en utilisant l'URL brut en tant qu'élément d'affichage. src pour un <script> o <img> tag. Le problème est qu'il ne s'agit pas d'actifs statiques. La vue du fichier brut, comme toute autre vue dans une application Rails, doit être rendue avant d'être renvoyée à l'utilisateur. Cela se traduit rapidement par un lourd tribut en termes de performances. Par le passé, nous avons été contraints de bloquer des contenus populaires servis de cette manière parce qu'ils mettaient nos serveurs à rude épreuve.

115voto

WJ B Points 41
# prevent mime based attacks
Header set X-Content-Type-Options "nosniff"

Cet en-tête empêche les attaques basées sur le "mime". Cet en-tête empêche Internet Explorer de renifler une réponse à l'aide de MIME en s'éloignant du type de contenu déclaré, car l'en-tête indique au navigateur de ne pas remplacer le type de contenu de la réponse. Avec l'option nosniff, si le serveur indique que le contenu est text/html, le navigateur le rendra comme text/html.

http://stopmalvertising.com/security/securing-your-website-with-.htaccess/.htaccess-http-headers.html

34voto

kaminski Points 37

Pour les serveurs Microsoft IIS, vous pouvez activer cet en-tête via votre fichier web.config fichier :

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <remove name="X-Content-Type-Options"/>
        <add name="X-Content-Type-Options" value="nosniff"/>
      </customHeaders>
    </httpProtocol>
</system.webServer>

Et le tour est joué.

17voto

Sahil Aggarwal Points 976

L'en-tête HTTP de réponse 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 et doivent être respectés. Cela permet de refuser le reniflage des types MIME ou, en d'autres termes, c'est une façon de dire que les webmasters savaient ce qu'ils faisaient.

Syntaxe :

X-Content-Type-Options : nosniff

Directives :

nosniff Bloque une demande si la valeur r 1. "style" et que le type MIME n'est pas "text/css", ou 2. "script" et que le type MIME n'est pas un type MIME JavaScript.

Note : nosniff ne s'applique qu'aux types "script" et "style". L'application de nosniff aux images s'est également révélée incompatible avec les sites web existants.

Spécification :

https://fetch.spec.whatwg.org/#x-content-type-options-header

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X