Что такое "X-Content-Type-Options=nosniff"?
Я делаю некоторое тестирование проникновения на моем localhost с OWASP ZAP, и он продолжает сообщать об этом сообщении:
заголовок анти-MIME-Sniffing X-Content-Type-Options не был установлен в 'nosniff'
эта проверка относится к Internet Explorer 8 и Google Chrome. Убедитесь, что каждая страница задает заголовок Content-Type и X-CONTENT-TYPE-параметры, Если заголовок 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 meta tag.
см. также:http://msdn.microsoft.com/en-us/library/ie/gg622941 (v=против 85).aspx
# prevent mime based attacks
Header set X-Content-Type-Options "nosniff"
этот заголовок предотвращает атаки на основе "mime". Этот заголовок запрещает Internet Explorer MIME-нюхать ответ от объявленного типа контента, поскольку заголовок указывает браузеру не переопределять тип контента ответа. С опцией nosniff, если сервер говорит, что содержимое является text / html, браузер отобразит его как text / html.
описание
настройка HTTP-ответа сервера до nosniff
указывает браузерам отключить содержание или мимика нюхает, который используется для переопределения ответ Content-Type
заголовки угадать и обработки данных с использованием неявного типа контента. Хотя это может быть удобно в некоторых случаях, это также может привести к некоторым атакам, перечисленных ниже. Настройка сервера для возврата X-Content-Type-Options
заголовок ответа HTTP установлен в nosniff
будет проинструктируйте браузеры, поддерживающие MIME sniffing, использовать сервер, предоставленный Content-Type
и не интерпретировать содержимое как другой тип контента.
Поддержка Браузеров
X-Content-Type-Options
поддерживается в Chrome, Firefox и Edge, а также в других браузерах. Последняя поддержка браузера доступна в таблице совместимости браузера Mozilla Developer Network (MDN) для X-Content-Type-Options:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options
Атак Парируется
-
мимическая атака замешательства включает атаки через созданные пользователем сайты контента, позволяя пользователям загружать вредоносный код, который затем выполняется браузерами, которые будут интерпретировать файлы с использованием альтернативных типов контента, например неявного
application/javascript
против явногоtext/plain
. Это может привести к " drive-by download " атака это общий вектор атаки фишинга. Сайты, размещающие пользовательский контент должны использовать этот заголовок для защиты своих пользователей. Об этом говорит VeraCode и OWASP, который говорит следующее:это уменьшает подверженность атакам загрузки диска и сайтам, обслуживающим загруженный пользователем контент, который, путем умного именования, может быть обработан MSIE как исполняемые или динамические HTML-файлы.
-
Несанкционированного Хотлинкинга также можно включить с помощью
Content-Type
принюхиваясь. Путем хотлинкинга на сайты с ресурсами для одной цели, например, просмотра, приложения могут полагаться на нюхание контента и генерировать много трафика на сайтах для другой цели, где это может противоречить их условиям обслуживания, например GitHub отображает код JavaScript для просмотра, но не для исполнение:некоторые надоедливые нечеловеческие пользователи( а именно компьютеры) перешли к активам "hotlinking" через функцию raw view-используя URL-адрес raw в качестве
src
на<script>
или<img>
тег. Проблема в том, что это не статические активы. Представление raw-файла, как и любое другое представление в приложении Rails, должно быть отображено перед возвращением пользователю. Это быстро сказывается на производительности. В прошлом мы были вынуждены блокировать популярный контент, подаваемый таким образом потому что это создает чрезмерную нагрузку на наши серверы.
для серверов Microsoft IIS вы можете включить этот заголовок через свой :
<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 не является "text / css", или 2. "скрипт" и тип MIME не является типом MIME JavaScript.
Примечание: nosniff применяется только к типам" сценарий "и" стиль". Также применение nosniff к изображениям оказалось несовместимым с существующими веб-сайтами.
спецификация :
https://fetch.spec.whatwg.org/#x-content-type-options-header