Ответ Шона Торберна был очень полезен и указал мне на хороший материал, поэтому я и получил награду.Тем не менее, я теперь еще немного покопался и думаю, что у меня есть ответ, который мне нужен, который оказывается противоположным ответу Шона.
Поэтому я отвечу на свои вопросы:
Приведенные выше ссылки (и другие) указывают на то, что неправильно устанавливать этот заголовок для всех ответов, но, несмотря на переход по ссылкам и поиску в Google, я не смог найти причину этого аргумента..
Здесь есть неверное толкование - это не то, что они указывают.
Ресурсы, которые я обнаружил во время моего исследования, относились к заголовку, который уважали только для "типов сценариев и стилей", который я интерпретировал как означающий файлы, которые обслуживались как text/javascript
или text/css
.
Однако, на самом деле они ссылались на контекст, в котором загружается файл, а не на тип MIME, которым он являетсябудучи поданным.Например, теги <script>
или <link rel="stylesheet">
.
При таком толковании все становится намного более понятным, и ответ становится ясным:
Вам необходимо подать все файлы с заголовком nosniff
для снижения риска атак с использованием контента пользователя.
Обслуживание только файлов CSS / JS с этим заголовком не имеет смысла, так как эти типы файловбыть приемлемым в этом контексте и не нуждаться в дополнительном сниффинге.
Однако, для других типов файлов, запретив сниффинг, мы гарантируем, что в каждом контексте разрешены только файлы, тип MIME которых соответствует ожидаемому типу.Это снижает риск того, что вредоносный скрипт будет скрыт в файле изображения (например) таким образом, чтобы обойти проверку загрузки и позволить сторонним скриптам быть размещенными на вашем домене и встроенными в ваш сайт.
Каковы риски / проблемы, связанные с настройкой X-Content-Type-Options: nosniff и почему его следует избегать для типов MIME, кроме text / css и text / javascript?
Или, если естьнет никаких рисков / проблем, почему Mozilla (и другие) предлагает, чтобы они были?
Нет проблем.
Описываемые проблемы - это проблемы, связанные с риском нарушения совместимости.с существующими сайтами.Исследования Mozilla показали, что применение опции nosniff
к тегам <img>
может привести к поломке многих сайтов из-за неправильной конфигурации сервера, и поэтому заголовок игнорируется в контекстах изображений.
Другие контексты (например, HTML-страницы, загрузки,шрифты и т. д.) либо не используют сниффинг, либо не связаны с риском, либо имеют проблемы с совместимостью, которые препятствуют отключению сниффинга.
Поэтому они не предлагают избегать использования этого заголовка,на всех.
Однако проблемы, о которых они говорят, приводят к важной сноске к этому обсуждению:
Если вы используете заголовок nosniff
, убедитесь, что вытакже содержит правильный заголовок Content-Type
!
Некоторые ссылки, которые помогли мне понять это немного более полно:
- WhatWG Fetchстандарт, определяющий этот заголовок.
- Обсуждение и код фиксации , относящиеся к этому заголовку для webhint.io инструмент проверки сайта.