Kaj počne X-Content-Type-Options?

Varnostne glave so podmnožica glave odgovora HTTP, ki jo lahko nastavi spletni strežnik, pri čemer vsaka uporablja varnostni nadzor v brskalnikih. Glave HTTP so oblika metapodatkov, poslanih s spletnimi zahtevami in odgovori. Varnostna glava »X-Content-Type-Options« preprečuje brskalnikom, da bi izvajali vohanje MIME.

Opomba: glave HTTP niso izključne za HTTP in se uporabljajo tudi v HTTPS.

Kaj je MIME vohanje?

Ko se kateri koli podatek pošlje prek spleta, je eden od vključenih kosov metapodatkov tip MIME. Večnamenske razširitve internetne pošte ali vrste MIME so standard, ki se uporablja za definiranje vrste podatkov, ki jih datoteka vsebuje, kar kaže, kako je treba z datoteko ravnati. Tip MIME je običajno sestavljen iz tipa in podtipa z izbirnim parametrom in vrednostjo. Na primer, besedilna datoteka UTF-8 bi imela tip MIME »text/plain; nabor znakov=UTF-8". V tem primeru je tip »besedilo«, podtip »navaden«, parameter »nabor znakov« in vrednost »UTF-8«.

Da bi preprečili napačno označevanje in napačno ravnanje z datotekami, spletni strežniki običajno izvajajo vohanje MIME. To je postopek, pri katerem se izrecno navedena vrsta MIME prezre, namesto tega pa se analizira začetek datoteke. Večina vrst datotek vključuje zaporedja glav, ki označujejo, za katero vrsto datoteke gre. Večino časa so vrste MIME pravilne in vohanje datoteke ni pomembno. Če pa obstaja razlika, bodo spletni strežniki uporabili vrsto datoteke s sniffed, da določijo, kako ravnati z datoteko, namesto deklarirane vrste MIME.

Težava se pojavi, če napadalcu uspe naložiti datoteko, kot je slika PNG, vendar je datoteka v resnici nekaj drugega kot koda JavaScript. Pri podobnih vrstah datotek, kot sta dve vrsti besedila, to morda ne bo povzročilo prevelike težave. Vendar pa postane resna težava, če se namesto tega lahko izvede popolnoma neškodljiva datoteka.

Kaj počne X-Content-Type-Options?

Glava X-Content-Type-Options ima samo eno možno vrednost »X-Content-Type-Options: nosniff«. Če ga omogočite, obvesti uporabnikov brskalnik, da ne sme izvajati vohanja tipa MIME in se namesto tega zanašati na izrecno deklarirano vrednost. Brez te nastavitve, če bi bila zlonamerna datoteka JavaScript prikrita kot slika, kot je PNG, bi se datoteka JavaScript izvršila. Če so omogočene možnosti X-Content-Type-Options, bo datoteka obravnavana kot slika, ki se ne bo naložila, ker datoteka ni veljaven format slike.

X-Content-Type-Options ni posebej potreben na spletnem mestu, ki uporablja v celoti lastne vire, saj ni možnosti, da bi bila zlonamerna datoteka pomotoma prikazana. Če spletno mesto uporablja vsebino tretjih oseb, kot so zunanji viri ali viri, ki jih je predložil uporabnik, X-Content-Type-Options zagotavlja zaščito pred to vrsto napada.