Qu'est-ce que "X-Content-Type-Options=nosniff"?
je fais quelques tests de pénétration sur mon hébergeur local avec OWASP ZAP, et il n'arrête pas de rapporter ce message:
l'en-tête Anti-MIME-Sniffing X-Content-Type-Options n'a pas été défini à "nosniff "
cette vérification est spécifique à Internet Explorer 8 et Google Chrome. S'assurer que chaque page définit un en-tête Content-Type et le X-CONTENT-TYPE-OPTIONS si L'en-tête Content-Type est inconnu
I Je n'ai aucune idée de ce que ça veut dire, 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 bonne façon de paramétrer le paramètre?
5 réponses
il empêche le navigateur de faire sniffer de type MIME. La plupart des navigateurs respectent maintenant cet en-tête, y compris Chrome/Chromium, Edge, IE >= 8.0, Firefox >= 50 et Opera >= 13. Voir:
en envoyant le Nouvel en-tête de réponse X-Content-Type-Options avec la valeur nosniff empêchera Internet L'explorateur de MIME-reniflant une réponse à l'écart du type de contenu déclaré.
EDIT:
OH et, c'est un en-tête HTTP, pas une option de métabalise HTML.
Voir aussi: http://msdn.microsoft.com/en-us/library/ie/gg622941 (v=vs 85).aspx
# prevent mime based attacks
Header set X-Content-Type-Options "nosniff"
cet en-tête empêche les attaques basées sur" mime". Cet en-tête empêche Internet Explorer De MIME-renifler une réponse loin du type de contenu déclaré que l'en-tête demande au navigateur de ne pas surcharger le type de contenu de réponse. Avec l'option nosniff, si le serveur dit que le contenu est text / html, le navigateur affichera text/html.
Description
paramétrer la réponse HTTP D'un serveur X-Content-Type-Options
en-tête de nosniff
indique aux navigateurs de désactiver content ou MIME sniffing qui est utilisé pour outrepasser la réponse Content-Type
en-têtes 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 aussi mener à certaines attaques énumérées ci-dessous. Configurer votre serveur pour retourner le X-Content-Type-Options
l'en-tête de réponse HTTP nosniff
indiquera aux navigateurs qui prennent en charge le MIME sniffing d'utiliser le Content-Type
fourni par le serveur et de ne pas interpréter le contenu comme un type de contenu différent.
Prise En Charge Du Navigateur
X-Content-Type-Options
est pris en charge dans Chrome, Firefox et Edge ainsi que d'autres navigateurs. La dernière prise en charge du navigateur est disponible sur la table de compatibilité du navigateur Mozilla Developer Network (MDN) pour X-Content-Type-Options:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options
Attaques Contre
-
MIME Confusion Attack permet des attaques via des sites de contenu générés par les utilisateurs en permettant aux utilisateurs de télécharger du code malveillant qui est ensuite exécuté par les navigateurs qui interprètent les fichiers en utilisant d'autres types de contenu, par exemple
application/javascript
implicite outext/plain
explicite . Cela peut donner lieu à une attaque " 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 doivent utiliser cet en-tête pour protéger leurs utilisateurs. Ceci est mentionné par VeraCode et OWASP qui dit ce qui suit:cela réduit l'exposition aux attaques de téléchargement au drive-by et aux sites servant le contenu téléchargé par l'utilisateur qui, en nommant intelligemment, pourrait être traité par MSIE comme des fichiers HTML exécutables ou dynamiques.
-
la liaison non autorisée peut aussi être activée par
Content-Type
sniffing. En se connectant à des sites avec des ressources pour un seul but, par exemple la visualisation, les applications peuvent se fier à sniffing de type de contenu GitHub affiche le code JavaScript pour la visualisation, mais pas pour l'exécution:certains utilisateurs non-humains (à savoir les ordinateurs) ont pris des actifs de" liaison à chaud "via la fonctionnalité de vue brute -- en utilisant L'URL brute comme
src
pour une étiquette<script>
ou<img>
. Le problème est qu'il ne s'agit pas d'actifs statiques. Le la vue de fichier brute, comme toute autre vue dans une application Rails, doit être rendue avant d'être retournée à l'utilisateur. Cela se traduit rapidement par un lourd tribut à la performance. Dans le passé, nous avons été forcés de bloquer le contenu populaire servi de cette façon parce qu'il a mis une pression excessive sur nos serveurs.
pour les serveurs Microsoft IIS, vous pouvez activer cet en-tête via votre 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 vous avez fini.
l'en-tête HTTP de la 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 changés et suivis. Cela permet d'opt-out de type MIME renifler, 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 requête si le type demandé est 1. "style" et le type MIME n'est pas" text/css", ou 2. "script" et le type MIME n'est pas un type MIME JavaScript.
Note: nosniff ne s'applique qu'aux types" script "et" style". Aussi l'application de nosniff aux images s'est avérée incompatible avec les sites Web existants.
Spécification:
https://fetch.spec.whatwg.org/#x-content-type-options-header