Ce face X-Content-Type-Options?

click fraud protection

Antetele de securitate sunt un subset de antet de răspuns HTTP care poate fi setat de un server web care aplică fiecare un control de securitate în browsere. Antetele HTTP sunt o formă de metadate trimise cu solicitări și răspunsuri web. Antetul de securitate „X-Content-Type-Options” împiedică browserele să efectueze sniffing MIME.

Notă: anteturile HTTP nu sunt exclusive pentru HTTP și sunt folosite și în HTTPS.

Ce este MIME sniffing?

Când orice date este trimisă pe web, una dintre metadatele incluse este de tip MIME. Extensiile de poștă Internet multifuncțională sau tipurile MIME sunt un standard utilizat pentru a defini tipul de date pe care le conține un fișier, care indică modul în care ar trebui să fie tratat fișierul. De obicei, tipul MIME constă dintr-un tip și un subtip cu un parametru și o valoare opționale. De exemplu, un fișier text UTF-8 ar avea tipul MIME „text/plain; set de caractere=UTF-8”. În acel exemplu, tipul este „text”, subtipul este „plain”, parametrul este „charset”, iar valoarea este „UTF-8”.

Pentru a preveni etichetarea și manipularea greșită a fișierelor, serverele web efectuează de obicei sniffing MIME. Acesta este un proces în care tipul MIME specificat în mod explicit este ignorat și, în schimb, începutul fișierului este analizat. Majoritatea tipurilor de fișiere includ secvențe de antet care indică ce tip de fișier este. De cele mai multe ori, tipurile MIME sunt corecte, iar adulmecarea fișierului nu face nicio diferență. Dacă există o diferență, serverele web vor folosi tipul de fișier sniffed pentru a determina cum să gestioneze fișierul, mai degrabă decât tipul MIME declarat.

Problema apare dacă un atacator reușește să încarce un fișier, cum ar fi o imagine PNG, dar fișierul este într-adevăr altceva ca cod JavaScript. Pentru tipuri de fișiere similare, cum ar fi două tipuri de text, aceasta nu poate cauza o problemă prea mare. Cu toate acestea, devine o problemă serioasă dacă un fișier perfect inofensiv poate fi executat în schimb.

Ce face X-Content-Type-Options?

Antetul X-Content-Type-Options are o singură valoare posibilă „X-Content-Type-Options: nosniff”. Activarea acestuia informează browserul utilizatorului că nu trebuie să efectueze sniffing de tip MIME și, în schimb, să se bazeze pe valoarea declarată în mod explicit. Fără această setare, dacă un fișier JavaScript rău intenționat a fost deghizat ca o imagine, cum ar fi PNG, atunci fișierul JavaScript ar fi executat. Cu X-Content-Type-Options activat, fișierul va fi tratat ca o imagine care nu se încarcă, deoarece fișierul nu este un format de imagine valid.

X-Content-Type-Options nu este deosebit de necesar pe un site web care utilizează în întregime resurse primare, deoarece nu există nicio șansă ca un fișier rău intenționat să fie difuzat accidental. Dacă un site web utilizează conținut terță parte, cum ar fi resurse externe sau trimise de utilizator, atunci X-Content-Type-Options oferă protecție împotriva acestui tip de atac.