MIME タイプの検証
X-Content-Type-Options ヘッダーは、サーバーが正しい MIMEタイプ を示さない限り、スクリプトやスタイルシートを読み込まないようブラウザーに指示します。
課題
適切な MIME タイプの検証が行われない場合、ブラウザーはスクリプトやスタイルシートではないファイルを、誤ってスクリプトやスタイルシートとして検出してしまうことがあります。このエラーにより、<script> および <link> 要素を介して、悪意のあるファイルがクロスサイトスクリプティング(XSS)攻撃の一環として読み込まれる可能性があります。
解決策
すべてのサイトは、X-Content-Type-Options ヘッダーの値を nosniff に設定し、配信するファイルに対して適切な MIME タイプを(つまり、Content-Type ヘッダーを介して)設定しなければなりません。
nosniff は、リクエストの出力先が以下のいずれかに該当する場合、そのリクエストをブロックします。
- type が
styleであり、MIME タイプがtext/cssではない場合。 - type が
scriptであり、MIME タイプが有効な JavaScript MIME タイプではない場合。
例
ブラウザーが、スタイルシートではないものをスタイルシートとして、またスクリプトではないものをスクリプトとして誤って検出するのを防ぐには、次のようにします。
http
X-Content-Type-Options: nosniff