X-Content-Type-Options
X-Content-Type-Options
は HTTP のレスポンスヘッダーで、 Content-Type
ヘッダーで示された MIME タイプを変更せずに従うべきであることを示すために、サーバーによって使用されるマーカーです。これにより、MIME タイプのスニッフィングを抑止することができます。言い替えれば、 MIME タイプを意図的に設定することができます。
このヘッダーは、 Microsoft が IE 8 において、コンテンツのスニッフィングにより、実行不可能な MIME タイプを実行可能な MIME タイプに変換してしまうという事故を抑止するためのとして導入したものです。それ以来、他のブラウザーは MIME スニッフィングのアルゴリズムにそれほど積極的ではなくても、このヘッダーを導入してきました。
Firefox 72 から、 Content-type
が提供されている場合、 MIME スニッフィングの抑止が最上位の文書にも適用されるようになりました。これにより、 HTML のウェブページが text/html
以外の MIME タイプで提供された場合、表示されるのではなくダウンロードされることがあります。両方のヘッダーを正しく設定してください。
サイトのセキュリティテスターは通常、このヘッダーが設定されていることを期待しています。
メモ: X-Content-Type-Options
は、 nosniff
によるリクエストブロッキングをリクエスト先が "script
" と "style
" の場合のみ適用します。しかし、 Cross-Origin Read Blocking (CORB) 保護を HTML, TXT, JSON, XML の各ファイル (SVG image/svg+xml
を除く) に対して有効にすることもできます。
構文
X-Content-Type-Options: nosniff
ディレクティブ
nosniff
-
リクエスト先のタイプが
style
でありその MIME タイプがtext/css
ではない場合、または、タイプがscript
で MIME タイプが JavaScript の MIME タイプではない場合にリクエストをブロックします。
仕様書
Specification |
---|
Fetch Standard # x-content-type-options-header |
ブラウザーの互換性
BCD tables only load in the browser
ブラウザー固有の注意事項
- Firefox 72 は最上位の文書で
X-Content-Type-Options: nosniff
を有効にします。
関連情報
Content-Type
- Microsoft による X-Content-Type-Options の 元の定義
- Mozilla Observatory ツールによるウェブサイトの設定 (このヘッダーを含む) の安全性とセキュリティのテスト
- Firefox における MIME 混同攻撃の緩和
- Cross-Origin Read Blocking (CORB)
- Google Docs CORB 解説書