X-Content-Type-Options

X-Content-Type-Options は HTTP のレスポンスヘッダーで、 Content-Type ヘッダーで示された MIME タイプを変更せずに従うべきであることを示すために、サーバーによって使用されるマーカーです。これにより、MIME タイプのスニッフィングを抑止することができます。すなわち、ウェブマスターが自分が何をしているかを分かっていると言う手段です。

このヘッダーは、コンテンツのスニッフィングにより、実行不可能な MIME タイプを実行可能な MIME タイプに変換してしまうという事故をウェブマスターが抑止するための方法として、マイクロソフトが IE 8 で導入したものです。それ以来、他のブラウザーは 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
リクエスト先のタイプが以下の場合、リクエストをブロックします。
Cross-Origin Read Blocking (CORB) 保護を次の MIME タイプに対して有効にします。
  • text/html
  • text/plain
  • text/json, application/json またはその他の JSON 拡張を伴うタイプ: */*+json
  • text/xml, application/xml またはその他の XML 拡張を伴うタイプ: */*+xml (image/svg+xml を除く)

仕様書

仕様書 状態 備考
Fetch
X-Content-Type-Options definition の定義
現行の標準 初回定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
X-Content-Type-OptionsChrome 完全対応 64
完全対応 64
部分対応 1
補足
補足 Not supported for stylesheets.
Edge 完全対応 12Firefox 完全対応 50IE 完全対応 8Opera 完全対応 ありSafari 完全対応 11WebView Android 完全対応 64
完全対応 64
部分対応 一部
補足
補足 Not supported for stylesheets.
Chrome Android 完全対応 64
完全対応 64
部分対応 一部
補足
補足 Not supported for stylesheets.
Firefox Android 完全対応 50Opera Android 完全対応 ありSafari iOS 完全対応 11Samsung Internet Android 完全対応 9.0
完全対応 9.0
部分対応 一部
補足
補足 Not supported for stylesheets.

凡例

完全対応  
完全対応
実装ノートを参照してください。
実装ノートを参照してください。

ブラウザー固有の注意事項

  • Firefox 72 は最上位文書で X-Content-Type-Options: nosniff を有効にします。

関連情報