Что делает X-Content-Type-Options?

click fraud protection

Заголовки безопасности - это подмножество заголовков HTTP-ответа, которые могут быть установлены веб-сервером, каждый из которых применяет элементы управления безопасностью в браузерах. Заголовки HTTP - это форма метаданных, отправляемых с веб-запросами и ответами. Заголовок безопасности «X-Content-Type-Options» не позволяет браузерам выполнять сниффинг MIME.

Примечание. Заголовки HTTP не являются эксклюзивными для HTTP и также используются в HTTPS.

Что такое обнюхивание MIME?

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

Чтобы предотвратить неправильную маркировку и неправильное обращение с файлами, веб-серверы обычно выполняют сниффинг MIME. Это процесс, в котором явно указанный MIME-тип игнорируется, а вместо этого анализируется начало файла. Большинство типов файлов включают последовательности заголовков, указывающие, какой это тип файла. В большинстве случаев типы MIME верны, и анализ файла не имеет значения. Если есть разница, веб-серверы будут использовать обнюханный тип файла, чтобы определить, как обрабатывать файл, а не объявленный тип 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 обеспечивает защиту от этого типа атак.