Какво правят X-Content-Type-Options?

click fraud protection

Заглавките за защита са подмножество от заглавки на HTTP отговор, които могат да бъдат зададени от уеб сървър, всеки от които прилага контрол за сигурност в браузърите. HTTP заглавките са форма на метаданни, изпращани с уеб заявки и отговори. Заглавката за защита „X-Content-Type-Options“ не позволява на браузърите да извършват MIME подслушване.

Забележка: HTTP заглавките не са изключителни за HTTP и се използват и в HTTPS.

Какво е MIME sniffing?

Когато някакви данни се изпращат по мрежата, една от включените метаданни е тип MIME. Многофункционалните разширения за интернет поща или типовете MIME са стандарт, използван за дефиниране на типа данни, които файлът съдържа, което показва как трябва да се обработва файлът. Обикновено MIME-типът се състои от тип и подтип с незадължителен параметър и стойност. Например, текстов файл UTF-8 ще има MIME тип „text/plain; charset=UTF-8”. В този пример типът е „текст“, подтипът е „обикновен“, параметърът е „charset“, а стойността е „UTF-8“.

За да предотвратят неправилното етикетиране и неправилно боравене с файлове, уеб сървърите обикновено извършват MIME подслушване. Това е процес, при който изрично посоченият MIME-тип се игнорира и вместо това се анализира началото на файла. Повечето типове файлове включват поредици от заглавки, които показват какъв тип файл е. През повечето време MIME типовете са правилни и подушването на файла няма значение. Ако има разлика обаче, уеб сървърите ще използват sniffed filetype, за да определят как да се справят с файла, а не с декларирания MIME тип.

Проблемът възниква, ако нападателят успее да качи файл като PNG изображение, но файлът наистина е нещо друго като JavaScript код. За подобни типове файлове, като например два текстови типа, това може да не причини твърде голям проблем. Това става сериозен проблем обаче, ако вместо това може да се изпълни напълно безобиден файл.

Какво прави X-Content-Type-Options?

Заглавката на X-Content-Type-Options има само една възможна стойност „X-Content-Type-Options: nosniff“. Активирането му информира браузъра на потребителя, че не трябва да извършва подслушване на MIME тип и вместо това да разчита на изрично декларираната стойност. Без тази настройка, ако злонамерен JavaScript файл е бил маскиран като изображение като PNG, тогава JavaScript файлът ще бъде изпълнен. При активирани опции на X-Content-Type-Options файлът ще се третира като изображение, което не успее да се зареди, тъй като файлът не е валиден формат на изображение.

X-Content-Type-Options не е особено необходим на уебсайт, който използва изцяло ресурси на първа страна, тъй като няма шанс злонамерен файл да бъде обслужен случайно. Ако даден уебсайт използва съдържание на трети страни, като външни ресурси или ресурси, изпратени от потребителя, тогава X-Content-Type-Options осигурява защита срещу този тип атака.