Что такое "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.configfile:<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