X-Content-Type-Options

L'header X-Content-Type-Options delle risposte HTTP è usato per indicare che il tipo MIME descritto dagli header di tipo Content-Type dovrebbe venire rispettato senza effettuare modifiche. Questo consente di al client di non effettuare lo sniffing del tipo MIME, o, in altre parole, è un modo con cui i webmaster comunicano che "sapevano cosa stessero facendo".

Questo header è stato introdotto da Microsoft con IE8 per consentire ai webmaster di impedire lo sniffing del tipo MIME, che avveniva comunemente, ma che poteva comportare la conversione di un tipo MIME non eseguibile in uno eseguibile. Da allora altri browser hanno iniziato a supportarlo, nonostante i loro algoritmi di sniffing siano meno aggressivi rispetto al passato.

I tester della sicurezza dei siti solitamente si aspettano di trovare questo header.

Nota: X-Content-Type-Options causa il blocco di una richiesta se il suo valore è nosniff solo per richieste con destinazione di tipo "script" o "style". Tale header causa anche It also l'attivazione del Cross-Origin Read Blocking (CORB) per file di tipo HTML, TXT, JSON e XML ( i file SVG image/svg+xml sono esclusi).

Tipo Header Response header
Forbidden header name no

Sintassi

X-Content-Type-Options: nosniff

Direttive

nosniff

Blocca la richiesta, se è di tipo:
Abilita il Cross-Origin Read Blockingper i seguenti tipi MIME:
  • text/html
  • text/plain
  • text/json, application/json o qualunque altro tipo avente estensione simile a  */*+json
  • text/xml, application/xml o qualunque altro tipo avente estensione simile a  */*+xml ( image/svg+xml esclusa).

Specifiche

Specification Status Comment
Fetch
The definition of 'X-Content-Type-Options definition' in that specification.
Living Standard Initial definition

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
X-Content-Type-Options
Non-standard
Chrome Full support 64
Full support 64
Partial support 1
Notes
Notes Not supported for stylesheets.
Edge Full support YesFirefox Full support 50IE Full support 8Opera Full support YesSafari No support NoWebView Android Full support 64
Full support 64
Partial support Partial
Notes
Notes Not supported for stylesheets.
Chrome Android Full support 64
Full support 64
Partial support Partial
Notes
Notes Not supported for stylesheets.
Firefox Android Full support 50Opera Android Full support YesSafari iOS No support NoSamsung Internet Android Full support 9.0
Full support 9.0
Partial support Partial
Notes
Notes Not supported for stylesheets.

Legend

Full support  
Full support
No support  
No support
Non-standard. Expect poor cross-browser support.
Non-standard. Expect poor cross-browser support.
See implementation notes.
See implementation notes.

Vedi anche