Что такое "X-Content-Type-Options=nosniff"?
Я делаю некоторые тесты на проникновение на моем localhost с OWASP ZAP, и он продолжает сообщать об этом сообщении:
параметры заголовка X-Content-Type-Anti-MIME-Sniffing не были установлены в 'nosniff'
эта проверка относится только к Internet Explorer 8 и Google Chrome. Убедитесь, что каждая страница задает заголовок типа контента и X-CONTENT-TYPE-OPTIONS если заголовок Content-Type неизвестен
Я понятия не имею, что это означает, и я не смог найти ничего в интернете. Я попытался добавить:
<meta content="text/html; charset=UTF-8; X-Content-Type-Options=nosniff" http-equiv="Content-Type" />
но я все еще получаю предупреждение.
Как правильно установить параметр?
5 ответов:
Это предотвращает браузер от выполнения MIME-типа нюхают. Большинство браузеров теперь уважают этот заголовок, включая Chrome / Chromium, Edge, IE >= 8.0, Firefox >= 50 и Opera >= 13. Смотрите:
отправка нового заголовка ответа X-Content-Type-Options со значением nosniff предотвратит Internet Explorer от MIME-обнюхивания ответа вдали от объявленного типа контента.
EDIT:
О, и это заголовок HTTP, а не опция мета-тега HTML.
Смотрите также:http://msdn.microsoft.com/en-us/library/ie/gg622941 (v=vs. 85). aspx
# prevent mime based attacks Header set X-Content-Type-Options "nosniff"
этот заголовок предотвращает атаки на основе" mime". Этот заголовок не позволяет Internet Explorer MIME-нюхать ответ от объявленного типа контента, поскольку заголовок указывает браузеру не переопределять тип контента ответа. С помощью опции nosniff, если сервер говорит, что содержимое является текстом / html, браузер отобразит его как текст / html.
описание
настройка HTTP-ответа сервера до
nosniff
указывает браузеру отключить содержание или мим нюхает, который используется для переопределения ответContent-Type
заголовки угадать и обработки данных с использованием неявного типа контента. Хотя это может быть удобно в некоторых случаях, это также может привести к некоторым атакам, перечисленных ниже. Настройка сервера для возвратаX-Content-Type-Options
заголовок ответа HTTP установлен вnosniff
будет проинструктировать браузеры, которые поддерживают проверки MIME для использования на сервере, предусмотренногоContent-Type
и не интерпретировать содержимое как другой тип контента.Поддержка Браузеров
X-Content-Type-Options
поддерживается в Chrome, Firefox и Edge, а также в других браузерах. Последняя поддержка браузера доступна в таблице совместимости браузера Mozilla Developer Network (MDN) для Х-Тип Контента-Варианты:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options
Атак Парируется
MIME Confusion Attack позволяет атаковать через пользовательские сайты контента, позволяя пользователям загружать вредоносный код, который затем выполняется браузерами, которые будут интерпретировать файлы с использованием альтернативных типов контента, например неявных
application/javascript
против явногоtext/plain
. Это может привести к "drive-by download" attack который является общим вектором атаки для фишинга. Сайты, размещающие пользовательский контент должны использовать этот заголовок для защиты своих пользователей. Об этом говорит VeraCode и OWASP, который говорит следующее:это уменьшает подверженность атакам на загрузку и сайты, обслуживающие загруженный пользователем контент, который, благодаря умному именованию, может быть обработан MSIE в виде исполняемых или динамических HTML-файлов.
Несанкционированный Hotlinking также можно включить с помощью
Content-Type
принюхиваясь. Путем горячей ссылки на сайты с ресурсами для одной цели, например просмотра, приложения могут полагаться на тип контента нюхать и генерировать много трафика на сайтах для другой цели, где это может быть против их условий обслуживания, например GitHub отображает код JavaScript для просмотра, но не для исполнение:некоторые надоедливые нечеловеческие пользователи (а именно компьютеры) перешли к активам "hotlinking" через функцию raw view - используя raw URL в качестве
src
на<script>
или<img>
тег. Проблема в том, что это не статические активы. Представление raw-файла, как и любое другое представление в приложении Rails, должно быть отображено перед возвратом пользователю. Это быстро добавляет до большой пошлины на производительность. В прошлом мы были вынуждены блокировать популярный контент, подаваемый таким образом потому что это создает чрезмерную нагрузку на наши серверы.
для серверов Microsoft IIS вы можете включить этот заголовок через
web.config
file:<system.webServer> <httpProtocol> <customHeaders> <remove name="X-Content-Type-Options"/> <add name="X-Content-Type-Options" value="nosniff"/> </customHeaders> </httpProtocol> </system.webServer>
и вы сделали.
HTTP-заголовок ответа X-Content-Type-Options является маркером, используемым сервером для указания того, что типы MIME, объявленные в заголовках Content-Type, не должны изменяться и следовать. Это позволяет отказаться от обнюхивания типа MIME, или, другими словами, это способ сказать, что веб-мастера знали, что они делают.
синтаксис :
X-Content-Type-Options: nosniff
директивы :
nosniff Блокирует запрос, если запрошенный тип 1. "стиль" и тип MIME-это не "текст / css", или 2. "скрипт" и тип MIME не является типом MIME JavaScript.
Примечание: nosniff применяется только к типам" script "и" style". Также применение nosniff к изображениям оказалось несовместимым с существующими веб-сайтами.
спецификация :
https://fetch.spec.whatwg.org/#x-content-type-options-header