Заголовки: X-Content-Type-Options
Заголовок X-Content-Type-Options
HTTP-заголовок X-Content-Type-Options ответа указывает, что MIME-типы, объявленные в заголовках Content-Type, следует использовать без изменений. Этот заголовок позволяет избежать определения MIME-типа по содержимому, указывая, что MIME-типы заданы намеренно.
Специалисты по безопасности сайтов обычно ожидают, что этот заголовок будет установлен (и что заголовок Content-Type правильно установлен для всех ресурсов).
Директива nosniff имеет два эффекта в зависимости от контекста:
-
Блокировка запросов: для запросов с назначением
"script"или"style"браузер блокирует ответ, если MIME-тип не соответствует ожидаемому (для скриптов — MIME-тип JavaScript, для таблиц стилей —text/css). Подробнее см. в спецификации Fetch. -
Определение MIME-типа по содержимому отключено: для других типов ответа, включая переходы к новому HTML-документу, браузер использует переданный
Content-Typeбез изменений, а не анализирует содержимое, чтобы определить тип. Например, если сервер отправляет ответ сContent-Type: text/plainиX-Content-Type-Options: nosniff, браузер не будет интерпретировать его как HTML, даже если содержимое включает HTML-разметку. Это предотвращает XSS-атаки, при которых загруженное пользователем содержимое выполняется как HTML-документ, даже если браузер указал, что его следует считать обычным текстом (или содержимым другого типа). Подробнее см. в спецификации MIME Sniffing.
| Тип заголовка | Заголовок ответа |
|---|---|
| Запрещённый заголовок ответа | Нет |
Синтаксис
X-Content-Type-Options: nosniff
Директивы
nosniff-
Блокирует запрос, если назначение запроса имеет тип
style, а MIME-тип не равенtext/css, или если оно имеет типscript, а MIME-тип не является MIME-типом JavaScript.Также отключает определение MIME-типа по содержимому для всех остальных типов ответа, заставляя браузер использовать объявленный
Content-Typeбез анализа содержимого ответа. В частности, это не позволяет браузеру интерпретировать ответ какtext/htmlпри загрузке в контексте просмотра, если заголовокContent-Typeотсутствует или указывает на тип, отличный от HTML.
Спецификации
| Спецификация |
|---|
| Fetch> # x-content-type-options-header> |
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | WebView на iOS | |
X-Content-Type-Options |
641–64Не поддерживается для таблиц стилей. |
12 | 50 |
5115–51Не поддерживается для таблиц стилей. |
11 |
6418–64Не поддерживается для таблиц стилей. |
50 |
4714–47Не поддерживается для таблиц стилей. |
11 |
9.01.0–9.0Не поддерживается для таблиц стилей. |
644.4–64Не поддерживается для таблиц стилей. |
11 |
См. также
Content-Type- Первоначальное определение X-Content-Type-Options от Microsoft.
- Используйте HTTP Observatory для проверки конфигурации безопасности веб-сайтов (в том числе этого заголовка).
- Защита Firefox от атак, связанных с путаницей MIME-типов
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Content-Type-Options