Što radi X-Content-Type-Options?

click fraud protection

Sigurnosna zaglavlja su podskup zaglavlja HTTP odgovora koje može postaviti web-poslužitelj od kojih svako primjenjuje sigurnosnu kontrolu u preglednicima. HTTP zaglavlja su oblik metapodataka koji se šalju s web zahtjevima i odgovorima. Sigurnosno zaglavlje "X-Content-Type-Options" sprječava preglednike da izvode MIME njuškanje.

Napomena: HTTP zaglavlja nisu ekskluzivna za HTTP i također se koriste u HTTPS-u.

Što je MIME njuškanje?

Kada se bilo koji podatak šalje putem weba, jedan od uključenih metapodataka je MIME tip. Višenamjenska proširenja internetske pošte ili MIME tipovi su standard koji se koristi za definiranje vrste podataka koje datoteka sadrži, što ukazuje na to kako se s datotekom treba rukovati. Tipično, MIME-tip se sastoji od tipa i podtipa s izbornim parametrom i vrijednošću. Na primjer, tekstualna datoteka UTF-8 imala bi MIME tip “text/plain; skup znakova=UTF-8”. U tom primjeru, tip je “text”, podtip je “plain”, parametar je “charset”, a vrijednost je “UTF-8”.

Kako bi spriječili pogrešno označavanje i rukovanje datotekama, web poslužitelji obično izvode MIME njuškanje. Ovo je proces u kojem se izričito naveden MIME-tip zanemaruje, a umjesto toga se analizira početak datoteke. Većina tipova datoteka uključuje sekvence zaglavlja koje označavaju o kojoj se vrsti datoteke radi. Većinu vremena MIME tipovi su ispravni, a njuškanje datoteke nema nikakve razlike. Ako ipak postoji razlika, web-poslužitelji će koristiti tip datoteke s njuškanjem kako bi odredili kako rukovati datotekom, a ne deklarirani MIME tip.

Problem se javlja ako napadač uspije prenijeti datoteku kao što je PNG slika, ali datoteka je zapravo nešto drugo poput JavaScript koda. Za slične vrste datoteka, kao što su dvije vrste teksta, to možda neće uzrokovati preveliki problem. Međutim, postaje ozbiljan problem ako se umjesto toga može izvršiti savršeno bezopasna datoteka.

Što radi X-Content-Type-Options?

Zaglavlje X-Content-Type-Options ima samo jednu moguću vrijednost “X-Content-Type-Options: nosniff”. Omogućavanje obavještava korisnikov preglednik da ne smije izvoditi njuškanje tipa MIME i umjesto toga oslanjati se na eksplicitno deklariranu vrijednost. Bez ove postavke, ako je zlonamjerna JavaScript datoteka bila prerušena u sliku kao što je PNG, tada bi se JavaScript datoteka izvršila. Kada su omogućene opcije X-Content-Type-Options, datoteka će se tretirati kao slika koja se ne uspijeva učitati jer datoteka nije valjani format slike.

X-Content-Type-Options nije osobito nužan na web-mjestu koje u potpunosti koristi izvore prve strane, jer nema šanse da se zlonamjerna datoteka slučajno posluži. Ako web-mjesto koristi sadržaj treće strane kao što su vanjski resursi ili resursi koje su poslali korisnici, X-Content-Type-Options pruža zaštitu od ove vrste napada.