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

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 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://stopmalvertising.com/security/securing-your-website-with-.htaccess/.htaccess-http-headers.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

Атак Парируется

  1. мимическая атака замешательства включает атаки через созданные пользователем сайты контента, позволяя пользователям загружать вредоносный код, который затем выполняется браузерами, которые будут интерпретировать файлы с использованием альтернативных типов контента, например неявного application/javascript против явного text/plain. Это может привести к " drive-by download " атака это общий вектор атаки фишинга. Сайты, размещающие пользовательский контент должны использовать этот заголовок для защиты своих пользователей. Об этом говорит VeraCode и OWASP, который говорит следующее:

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

  2. Несанкционированного Хотлинкинга также можно включить с помощью 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