2013-08-20 17 views
176

Sto facendo un po 'di test di penetrazione sul mio localhost con OWASP ZAP, e mantiene segnalato il messaggio:Che cos'è "X-Content-Type-Options = nosniff"?

L'intestazione Anti-MIME-Fiuto X-Content-Type-Options non è stato impostato su 'NOSNIFF'

Questo controllo è specifico per Internet Explorer 8 e Google Chrome. Assicurarsi che ogni pagina imposta un header Content-Type e le X-Content-Type-OPTIONS se l'intestazione Content-Type è sconosciuto

Non ho idea di che cosa questo significa, e non ho trovato nulla in linea . Ho provato ad aggiungere:

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

ma ho ancora l'avviso.

Qual è il modo corretto di impostare il parametro?

risposta

118

Impedisce al browser di eseguire lo sniffing di tipo MIME. La maggior parte dei browser è ora rispettano questa intestazione, tra cui Chrome/Chromium, Riva, IE> = 8.0, Firefox> = 50 e Opera> = 13. Vedere:

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

invio del nuovo X-Content L'intestazione di risposta Type-Options con il valore nosniff impedirà a Internet Explorer di MIME di sniffare una risposta lontano dal tipo di contenuto dichiarato.

EDIT:

Oh, e, questo è un header HTTP, non è un'opzione meta tag HTML.

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

+13

Devi contare che è 'per i server che ospitano content' non attendibile. Per i siti web che non visualizzano contenuti dai caricamenti degli utenti, non è necessario impostarli. – machineaddict

+7

@machineaddict, ** Wrong **. Lo sniffing avverrà indipendentemente dal fatto che il contenuto sia attendibile o non affidabile. Vedi http://security.stackexchange.com/a/11761/2379. Distruggerà il tuo sito in modo sottile. Disattiva sempre lo sniffing se non ti piacciono le sorprese. – Pacerier

+10

Penso che ti sia persa la parte "Qual è lo sniffing di tipo MIME?" –

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

Questa intestazione previene attacchi basati "MIME". Questa intestazione impedisce a Internet Explorer di MIME di sniffare una risposta dal tipo di contenuto dichiarato poiché l'intestazione indica al browser di non sovrascrivere il tipo di contenuto della risposta. Con l'opzione nosniff, se il server dice che il contenuto è text/html, il browser lo renderà come text/html.

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

+4

spiegazione molto più chiara di altre - grazie – danday74

+0

@GuillaumeBoudreau Funziona per me –

+4

Ho sempre saputo che i mimi erano pericolosi. Dovrebbero solo imparare le parole. – kguest

14

Per Microsoft IIS server, è possibile attivare questa intestazione tramite il file web.config:

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

e si è fatto.

+2

È anche possibile impostare intestazioni personalizzate in IIS, ma la soluzione è migliore in quanto può essere controllata da fonti di origine anziché gestita dalla configurazione. – ajeh

58

I browser possono utilizzare content or MIME sniffing per ignorare le intestazioni di risposta Content-Type per indovinare ed elaborare i dati utilizzando un tipo di contenuto implicito. Mentre questo può essere conveniente in alcuni scenari, può anche portare ad alcuni attacchi elencati di seguito. La configurazione del server per restituire l'intestazione di risposta HTTP X-Content-Type-Options impostata su nosniff indicherà ai browser che supportano lo sniffing MIME di utilizzare il server fornito Content-Type e non interpretare il contenuto come un tipo di contenuto diverso.

Supporto browser

X-Content-Type-Options è supportato in Chrome, Firefox ed Edge, così come altri browser. L'ultimo supporto del browser è disponibile su Mozilla Developer Network (MDN) Tabella Compatibilità Browser per X-Content-Type-Options:

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

Attacchi contrastata

  1. MIME Confusion Attack consente attacchi tramite siti di contenuti generati dagli utenti consentendo agli utenti di caricare codice dannoso che viene poi eseguito dai browser che interpreteranno i file utilizzando tipi di contenuto alternativi, ad esempio application/javascript vs. text/plain. Ciò può comportare un "drive-by download" attack che è un vettore di attacco comune per il phishing. I siti che ospitano contenuti generati dagli utenti dovrebbero utilizzare questa intestazione per proteggere i propri utenti. Questo è menzionato da VeraCode e OWASP che dice quanto segue:

    Questo riduce l'esposizione al drive-by attacchi di download e siti che servono contenuti caricati dagli utenti che, per denominazione intelligente, potrebbero essere trattati da MSIE come file HTML eseguibili o dinamici .

  2. Unauthorized Hotlinking può anche essere abilitato da Content-Type sniffing. Mediante hotlinking a siti con risorse per uno scopo, ad es. visualizzazione, le app possono fare affidamento sullo sniffing di tipo contenuto e generare molto traffico sui siti per un altro scopo in cui potrebbe essere contrario ai loro termini di servizio, ad es. GitHub display codice JavaScript per la visualizzazione, ma non per l'esecuzione:

    Alcuni utenti non umani fastidiosi (cioè computer) hanno preso a "hotlinking" attività tramite la funzione vista prima - utilizzando l'URL crudo come il src per un tag <script> o <img>. Il problema è che queste non sono risorse statiche. La vista del file non elaborato, come qualsiasi altra vista in un'app Rails, deve essere sottoposta a rendering prima di essere restituita all'utente. Ciò comporta rapidamente un grande impatto sulle prestazioni. In passato siamo stati costretti a bloccare il contenuto popolare in questo modo perché sottoponeva a uno sforzo eccessivo i nostri server.

+4

Lo sforzo di spiegare cosa siano realmente quegli attacchi è molto apprezzato. – Andrejs

+1

Grazie per la spiegazione. Dire semplicemente "previene xyz" non aiuta molto a sapere se la mia domanda potrebbe essere soggetta a questo. Grazie alla tua spiegazione, so che non può essere sottoposto a questo tipo di attacchi. –

2

L'intestazione X-Content-Type-opzioni di risposta HTTP è un indicatore utilizzato dal server per indicare che i tipi MIME pubblicizzati nelle intestazioni Content-Type non dovrebbero essere modificate e essere seguite. Ciò consente di disattivare lo sniffing di tipo MIME o, in altre parole, è un modo per dire che i webmaster sapevano cosa stavano facendo.

Sintassi:

X-Content-Type-Options: NOSNIFF

direttive:

NOSNIFF blocchi una richiesta se il tipo di richiesta è 1."style" e il tipo MIME non è "text/css", oppure 2. "script" e il tipo MIME non è un tipo MIME JavaScript.

Nota: nosniff si applica solo ai tipi "script" e "stile". Anche l'applicazione di nosniff alle immagini risulta incompatibile con i siti Web esistenti.

Specification:

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

Problemi correlati