Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 760

MIME-сниффинг

ПроверилCybersecurity entrepreneur & security researcher

Что такое MIME-сниффинг?

MIME-сниффингПоведение браузера, угадывающее тип содержимого ответа по байтам; может быть использовано для исполнения загруженных файлов как скриптов.


MIME-сниффинг — это устаревшая функция браузера, при которой браузер анализирует первые байты ответа и переопределяет объявленный сервером заголовок Content-Type, чтобы отрисовать ресурс более удобным образом. Злоумышленники злоупотребляют этим, когда приложение отдаёт загруженные пользователями файлы с неверным или обобщённым типом: файл, содержащий HTML или JavaScript, может быть распознан как text/html и выполнен в источнике жертвы, что открывает возможность для хранимого XSS.

Это поведение восходит к ранним версиям Internet Explorer, чей агрессивный сниффинг был печально известным источником XSS из-за «путаницы типов содержимого»; Microsoft ввела механизм отказа X-Content-Type-Options: nosniff в IE8 (2008), и сегодня он стандартизирован в MIME Sniffing Standard спецификации WHATWG Fetch. Отправка nosniff заставляет браузер соблюдать объявленный тип и отказываться выполнять скрипт или таблицу стилей, чей Content-Type не соответствует назначению запроса. Современное усиление защиты выстраивает несколько уровней контроля: отдавать каждый предоставленный пользователем файл с корректным, конкретным Content-Type и, где уместно, Content-Disposition: attachment; размещать пользовательский контент на отдельном изолированном источнике (sandbox); и применять строгую Content-Security-Policy. Сканеры безопасности и анализаторы заголовков (например, Mozilla Observatory) отмечают любой HTML-ответ без nosniff.

flowchart TD
  A[Пользователь загружает файл] --> B[Приложение отдаёт его<br/>с неверным/обобщённым типом]
  B --> C{X-Content-Type-Options:<br/>nosniff установлен?}
  C -- Нет --> D[Браузер анализирует байты<br/>и отрисовывает как text/html]
  D --> E[Хранимый XSS выполняется<br/>в источнике жертвы]
  C -- Да --> F[Браузер соблюдает<br/>объявленный тип]
  F --> G[Файл скачивается, а не выполняется]

Примеры

  1. 01

    X-Content-Type-Options: nosniff

  2. 02

    Эндпоинт загрузки аватара возвращает image/png, но файл содержит HTML; без nosniff браузер выполняет его как страницу.

Частые вопросы

Что такое MIME-сниффинг?

Поведение браузера, угадывающее тип содержимого ответа по байтам; может быть использовано для исполнения загруженных файлов как скриптов. Относится к категории Безопасность приложений в кибербезопасности.

Что означает MIME-сниффинг?

Поведение браузера, угадывающее тип содержимого ответа по байтам; может быть использовано для исполнения загруженных файлов как скриптов.

Как защититься от MIME-сниффинг?

Защита от MIME-сниффинг обычно сочетает технические меры и операционные практики, как описано в определении выше.

Связанные термины