2013-08-20 11 views
176

ich tue etwas Penetrationstests auf meinem localhost mit OWASP ZAP, und es auf diese Nachricht hält die Berichterstattung:Was ist "X-Content-Type-Optionen = nosniff"?

Das Anti-MIME-Sniffing-Header X-Content-Type-Optionen wurden nicht auf 'NOSNIFF'

Diese Überprüfung gilt nur für Internet Explorer 8 und Google Chrome. Stellen Sie sicher, jede Seite stellt einen Content-Type-Header und die X-CONTENT-TYPE-OPTIONS, wenn der Content-Type-Header unbekannt ist

Ich habe keine Ahnung, was das bedeutet, und ich konnte nicht alles online finden . Ich habe versucht, hinzuzufügen:

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

aber ich bekomme immer noch die Warnung.

Wie ist die richtige Einstellung des Parameters?

Antwort

118

Es verhindert, dass der Browser MIME-Typ-Sniffing durchführt. Die meisten Browser sind zu respektieren jetzt diesen Header, einschließlich Chrome/Chromium, Rand, IE> = 8.0, Firefox> = 50 und Opera> = 13. Siehe:

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

Senden der neuen X-Content- Type-Options Response-Header mit dem Wert Nosniff verhindert Internet Explorer von MIME-Sniffing eine Antwort weg von der deklarierten Content-Typ.

EDIT:

Oh, und das ist ein HTTP-Header, kein HTML-Meta-Tag-Option. auch

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

+13

Sie müssen erwähnen, dass ist 'für Server-Hosting nicht vertrauenswürdigen content'. Bei Websites, die keine Inhalte von Nutzer-Uploads anzeigen, müssen Sie dies nicht festlegen. – machineaddict

+7

@machineaddict, ** Falsch **. Sniffing wird unabhängig davon ausgeführt, ob der Inhalt vertrauenswürdig oder nicht vertrauenswürdig ist. Siehe http://security.stackexchange.com/a/11761/2379. Es wird Ihre Website auf subtile Weise brechen. Deaktivieren Sie das Sniffing immer, wenn Sie keine Überraschungen mögen. – Pacerier

+10

Ich glaube, Sie haben den Teil "Was ist MIME-Typ schnüffeln?" –

84
# prevent mime based attacks 
Header set X-Content-Type-Options "nosniff" 

Dieser Header verhindert "Mime" basierte Angriffe. Dieser Header verhindert, dass Internet Explorer eine Antwort vom angegebenen Inhaltstyp aus MIME schnüffelt, da der Header den Browser anweist, den Inhaltstyp der Antwort nicht zu überschreiben. Wenn der Server bei der Option nosniff angibt, dass der Inhalt text/html ist, wird er vom Browser als text/html gerendert.

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

+4

viel klarere Erklärung als andere - danke – danday74

+0

@GuillaumeBoudreau Es funktioniert für mich –

+4

Ich wusste immer, Pantomimen waren gefährlich. Sie sollten nur die Worte lernen. – kguest

14

Für Microsoft IIS-Server, können Sie diesen Header über Ihre web.config Datei aktivieren:

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

Und du bist fertig.

+2

Es ist auch möglich, benutzerdefinierte Header in IIS festzulegen, aber Ihre Lösung ist besser, da sie von der Quelle gesteuert und nicht von der Konfiguration verwaltet werden kann. – ajeh

58

Browser können content or MIME sniffing verwenden, um die Antwort Content-Type Header zu überschreiben, um die Daten mit einem impliziten Inhaltstyp zu erraten und zu verarbeiten. Dies kann in einigen Szenarien hilfreich sein, kann aber auch zu einigen der unten aufgeführten Angriffe führen. Wenn Sie Ihren Server so konfigurieren, dass der HTTP-Antwortheader X-Content-Type-Options auf nosniff zurückgesetzt wird, weisen Browser, die MIME-Sniffing unterstützen, den vom Server bereitgestellten Code Content-Type an und interpretieren den Inhalt nicht als einen anderen Inhaltstyp.

Browser-Unterstützung

X-Content-Type-Options ist in Chrome, Firefox und Edge-sowie anderen Browsern unterstützt. Die neueste Browser-Unterstützung ist auf dem Mozilla Developer Network (MDN) Browser-Kompatibilität Tabelle für X-Content-Type-Optionen zur Verfügung:

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

Angriffe Konterten

  1. MIME Confusion Attack ermöglicht Angriffe über benutzergenerierte Content-Websites ermöglichen Benutzern das Hochladen von bösartigem Code, der dann von Browsern ausgeführt wird, die die Dateien mit alternativen Inhaltstypen interpretieren, z application/javascript vs text/plain. Dies kann zu einem "drive-by download" attack führen, einem häufigen Angriffsvektor für Phishing. Websites, die nutzergenerierte Inhalte hosten, sollten diese Kopfzeile verwenden, um ihre Benutzer zu schützen. Dies wird durch VeraCode und OWASP erwähnt, die sagt der folgende:

    Dies verringert Belastung durch Drive-by-Download-Attacken und Websites Benutzer hochgeladenen Inhalte dienen, die durch geschickte Namensgebung könnte durch MSIE als ausführbare Datei oder dynamische HTML-Dateien behandelt werden .

  2. Unauthorized Hotlinking kann auch durch Content-Type Schnüffeln aktiviert werden. Durch das Hotlinking zu Sites mit Ressourcen für einen Zweck, z. Wenn Apps angesehen werden, können sie sich auf das Sniffing vom Inhaltstyp verlassen und viel Verkehr auf Sites für einen anderen Zweck erzeugen, wo sie gegen ihre Nutzungsbedingungen, z. GitHub Displays JavaScript-Code für die Anzeige, aber nicht für die Ausführung: „Hotlinking“ Assets über die unformatierte Ansicht Feature

    Einige lästigen nicht-menschlichen Benutzer (nämlich Computer) haben genommen - die rohe URL als src Verwendung für ein <script> oder <img> Tag. Das Problem ist, dass dies keine statischen Assets sind. Die Raw-Dateiansicht muss wie jede andere Ansicht in einer Rails-App gerendert werden, bevor sie an den Benutzer zurückgegeben wird. Dies führt schnell zu einer großen Leistungseinbuße. In der Vergangenheit waren wir gezwungen, populäre Inhalte auf diese Weise zu blockieren, da dies unsere Server übermäßig belastete.

+4

Die Bemühungen zu erklären, was diese Angriffe tatsächlich sind, wird sehr geschätzt. – Andrejs

+1

Danke für die Erklärung. Nur zu sagen "es verhindert xyz" hilft nicht viel zu wissen, ob meine Anwendung dies ausgesetzt sein könnte. Dank Ihrer Erklärung weiß ich, dass sie diesen Angriffen nicht ausgesetzt werden kann. –

2

Der X-Content-Type-Optionen Antwort HTTP-Header ist ein Marker vom Server verwendet wird, um anzuzeigen, dass die MIME-Typen in dem Content-Type-Header beworben sollten nicht geändert werden und verfolgt werden. Dies ermöglicht es, MIME-Typ-Sniffing abzulehnen, oder mit anderen Worten, es ist eine Art zu sagen, dass die Webmaster wussten, was sie taten.

Syntax:

X-Content-Type-Optionen: NOSNIFF

Richtlinien:

NOSNIFF Blocks eine Anfrage, ob der angeforderte Typ 1 ist."Stil" und der MIME-Typ ist nicht "text/css" oder 2. "Skript" und der MIME-Typ ist kein JavaScript-MIME-Typ.

Hinweis: nosniff gilt nur für "Skript" - und "Stil" -Typen. Auch die Anwendung von Nosniff auf Bilder stellte sich als inkompatibel mit bestehenden Websites heraus.

Spezifikation:

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