Что такое "X-Content-Type-Options = nosniff"?

Я выполняю тестирование на моем локальном хосте с OWASP ZAP, и он продолжает сообщать об этом сообщении:

Заголовок X-Content-Type-Options для Anti-MIME-Sniffing не был установлен 'Nosniff'

Эта проверка относится к Internet Explorer 8 и Google Chrome. Убедитесь, что каждая страница задает заголовок Content-Type и X-CONTENT-TYPE-OPTIONS, если заголовок Content-Type неизвестен

Я понятия не имею, что это значит, и я ничего не нашел в Интернете. Я попытался добавить:

<meta content="text/html; charset=UTF-8; X-Content-Type-Options=nosniff" http-equiv="Content-Type" />

но я все еще получаю предупреждение.

Каков правильный способ установки параметра?

Ответ 1

Это предотвращает использование браузером MIME-типа. Большинство браузеров теперь относятся к этому заголовку, включая Chrome/Chromium, Edge, IE >= 8.0, Firefox > 50 и Opera >= 13. Смотрите:

https://blogs.msdn.com/b/ie/archive/2008/09/02/ie8-security-part-vi-beta-2-update.aspx?Redirected=true

Отправка нового заголовка ответа X-Content-Type-Options со значением nosniff запретит Internet Explorer из MIME-обнюхивать ответ от объявленного типа содержимого.

EDIT:

О, и это HTTP-заголовок, а не метатег HTML.

Смотрите также: http://msdn.microsoft.com/en-us/library/ie/gg622941(v=vs.85).aspx

Ответ 2

# prevent mime based attacks
Header set X-Content-Type-Options "nosniff"

Этот заголовок предотвращает атаки на основе mime. Этот заголовок запрещает Internet Explorer от MIME-отбрасывать ответ от объявленного типа контента, поскольку заголовок указывает браузеру не переопределять тип содержимого ответа. С опцией nosniff, если сервер говорит, что контент является text/html, браузер отобразит его как text/html.

http://stopmalvertising.com/security/securing-your-website-with-.htaccess/.htaccess-http-headers.html

Ответ 3

Браузеры могут использовать контент или MIME sniffing для переопределения заголовков ответов Content-Type для угадывания и обработки данных с использованием неявного типа содержимого. Хотя это может быть удобно в некоторых сценариях, это также может привести к некоторым атакам, перечисленным ниже. Возврат X-Content-Type-Options, установленный в nosniff, заставит Internet Explorer 9, Chrome и Safari использовать предоставленный Content-Type и не интерпретировать содержимое как другой тип контента. Firefox рассматривает это.

  • MIME Confusion Attack позволяет атаковать через созданные пользователями сайты контента, позволяя пользователям загружать вредоносный код, который затем выполняется браузерами, которые будут интерпретировать файлы с использованием альтернативных типов контента, например application/javascript против text/plain. Сайты, на которых размещается пользовательский контент, должны использовать этот заголовок для защиты своих пользователей. Это упоминается VeraCode и OWASP, который говорит следующее:

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

  • Неавторизованное горячее соединение также можно включить с помощью Content-Type sniffing. Путем ссылки на сайты с ресурсами для одной цели, например. просмотра, приложения могут полагаться на обнюхивание контента и генерировать много трафика на сайтах для другой цели, где это может быть против их условий обслуживания, например. GitHub отображает код JavaScript для просмотра, но не для выполнения:

    Некоторые надоедливые нечеловеческие пользователи (а именно компьютеры) перешли в "hotlinking" активы через функцию необработанного представления - используя необработанный URL как src для тега <script> или <img>. Проблема в том, что это не статические активы. Необработанное представление файла, как и любое другое представление в приложении Rails, должно быть отображено перед возвратом пользователю. Это быстро добавляет большие потери производительности. Раньше мы были вынуждены блокировать популярный контент, который использовался таким образом, потому что он наносил чрезмерные нагрузки на наши серверы.

Ответ 4

Для серверов Microsoft IIS вы можете включить этот заголовок через ваш файл web.config:

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <remove name="X-Content-Type-Options"/>
        <add name="X-Content-Type-Options" value="nosniff"/>
      </customHeaders>
    </httpProtocol>
</system.webServer>

И все готово.

Ответ 5

HTTP-заголовок ответа X-Content-Type-Options - это маркер, используемый сервером для указания того, что типы MIME, рекламируемые в заголовках Content-Type, не должны изменяться и выполняться. Это позволяет отказаться от флюидов типа MIME или, другими словами, это способ сказать, что веб-мастера знали, что они делают.

Синтаксис:

X-Content-Type-Options: nosniff

Директивы:

nosniff Блокирует запрос, если запрашиваемый тип  1. "стиль", а тип MIME не является "text/css", или  2. "script", а тип MIME не является MIME-типом JavaScript.

Примечание: nosniff применяется только к типам "script" и "style". Также применение nosniff к изображениям оказалось несовместимым с существующими веб-сайтами.

Спецификация:

https://fetch.spec.whatwg.org/#x-content-type-options-header