Öryggishausar eru undirmengi HTTP-svarshausa sem hægt er að stilla af vefþjóni sem hver og einn notar öryggisstýringu í vöfrum. HTTP hausar eru tegund lýsigagna sem send eru með vefbeiðnum og svörum. Öryggishausinn „X-Content-Type-Options“ kemur í veg fyrir að vafrar geti framkvæmt MIME-sniff.
Athugið: HTTP hausar eru ekki eingöngu fyrir HTTP og eru einnig notaðir í HTTPS.
Hvað er MIME sniffing?
Þegar einhver gögn eru send í gegnum vefinn er eitt af lýsigögnunum sem fylgja með MIME gerð. Multipurpose Internet Mail Extensions, eða MIME-gerðir eru staðall notaður til að skilgreina tegund gagna sem skrá inniheldur, sem gefur til kynna hvernig ætti að meðhöndla skrána. Venjulega samanstendur MIME-gerðin af gerð og undirgerð með valkvæðri færibreytu og gildi. Til dæmis myndi UTF-8 textaskrá hafa MIME gerðina „text/plain;charset=UTF-8“. Í því dæmi er tegundin „texti“, undirgerðin er „látlaus“, færibreytan er „stafsett“ og gildið „UTF-8“.
Til að koma í veg fyrir ranga merkingu og ranga meðferð skráa, framkvæma vefþjónar venjulega MIME-sniffing. Þetta er ferli þar sem beinlínis tilgreind MIME-gerð er hunsuð og í staðinn er byrjun skráarinnar greind. Flestar skráargerðir innihalda hausaraðir sem gefa til kynna hvers konar skrá það er. Oftast eru MIME-gerðir réttar og það skiptir engu máli að þefa af skránni. Ef það er þó munur, munu vefþjónar nota sniffed filetype til að ákvarða hvernig eigi að meðhöndla skrána frekar en uppgefna MIME-gerð.
Vandamálið kemur upp ef árásarmaður tekst að hlaða upp skrá eins og PNG mynd, en skráin er í raun eitthvað annað eins og JavaScript kóða. Fyrir svipaðar skráargerðir, eins og tvær textagerðir, gæti þetta ekki valdið of miklum vandræðum. Það verður hins vegar alvarlegt mál ef hægt er að keyra fullkomlega saklausa skrá í staðinn.
Hvað gerir X-Content-Type-Options?
X-Content-Type-Options hausinn hefur aðeins eitt mögulegt gildi „X-Content-Type-Options: nosniff“. Með því að virkja það upplýsir vafra notandans um að hann megi ekki framkvæma MIME-gerð sniffing og treysta þess í stað á gagngert uppgefið gildi. Án þessarar stillingar, ef illgjarn JavaScript skrá var dulbúin sem mynd eins og PNG, þá væri JavaScript skráin keyrð. Með X-Content-Type-Options virkt verður farið með skrána sem mynd sem tekst ekki að hlaðast þar sem skráin er ekki gilt myndsnið.
X-Content-Type-Options er ekki sérstaklega nauðsynlegt á vefsíðu sem notar algjörlega auðlindir frá fyrsta aðila, þar sem engar líkur eru á að skaðleg skrá sé birt fyrir slysni. Ef vefsíða notar efni frá þriðja aðila eins og utanaðkomandi auðlindir eða auðlindir sem notendur hafa sent inn, þá veitir X-Content-Type-Options vernd gegn þessari tegund af árásum.