X-Content-Type-Options

X-Content-Type-Options

Hlavička zajišťuje ověření správně nastaveného formátu zdrojových souborů.

Hlavička sděluje prohlížeči, aby ověřoval zda zdroj má v hlavičce správně nastavený MIME typ. Webové prohlížeče se snaží procházet odkazované soubory a pokud naleznou nějaký script, pokusí se jej vykonat. Jedná se o tzv. content-sniffing, kdy prohlížeč spustí například .js script v textovém souboru, který umístil útočník do webového prostoru. Scripty je možné spouštět i z obrázů atd. Hlavička je funkční ve všech moderních prohlížečích, nemusí se však chovat ve všech stejně.

Proč používat X-Content-Type-Options

Pokud prohlížeč ignoruje hlášený typ MIME, webmaster či administrátor webu nemá plnou kontrolu nad tím, jak má být obsah zpracováván. Když webový server nebo aplikace hlásí nesprávný typ MIME pro obsah, webový prohlížeč nemůže zjistit, jak se má soubor zpracovat a může se rozhodnout jiným způsobem než bylo zamýšleno. Nastavením X-Content-Type-Options sdělujeme prohlížečům, že nemají odhadovat typ souboru/média a řídit se pouze předanými informacemi. Tím zvýšíme bezpečnost uživatele před škodlivým obsahem, který předstírá, že je bezpečným typem dokumentu.

Definice hlavičky X-Content-Type-Options

Zakázání sniffingu
X-Content-Type-Options: nosniff

Existuje pouze jeden parametr "nosniff", který je nutné přidat k X-Content-Type-Options.

Nastavení X-Content-Type-Options

.htaccess
# X-Content-Type-Options settings
Header set X-Content-Type-Options nosniff
Nginx
add_header X-Content-Type-Options nosniff;

Potenciální chyby v nastavení

X-Content-Type-Options 'nosniff' Chybná konfigurace, uvozovky nejsou povoleny.
X-Content-Type-Options : nosniff Neplatný znak ":", nastavení nebude funkční.

Užitečné zdroje

Co jsou MIME typy?

Typy MIME (Multipurpose Internet Mail Extensions) popisují typ obsahu média. Označování se používá v e-mailu, je zasíláno webovým serverem nebo aplikací a slouží k určení zpracování a zobrazení obsahu webovým prohlížečem.

text/html pro www stránky
text/plain pro text
text/css pro kaskádové styly
text/javascript pro scripty
application/octet-stream označuje "download this file"
application/x-java-applet pro Java applety
application/pdf pro PDF documenty
...

Další Informace o MIME (Wikipedia).