"X-Content-Type-Options = nosniff"とは何ですか?
私はOWASP ZAPを使って私のローカルホストで侵入テストをしています、そしてそれはこのメッセージを報告し続けます:
MIMEスニッフィング防止ヘッダX-Content-Type-Optionsが 'nosniff'に設定されていませんでした
このチェックは、Internet Explorer 8とGoogle Chromeに固有のものです。 Content-Typeヘッダーが不明な場合は、必ず各ページにContent-TypeヘッダーとX-CONTENT-TYPE-OPTIONSを設定してください。
これが何を意味するのか私にはわかりません、そして私は何もオンラインで見つけることができませんでした。私は追加してみました:
<meta content="text/html; charset=UTF-8; X-Content-Type-Options=nosniff" http-equiv="Content-Type" />
しかし、私はまだ警戒を受けます。
パラメータを設定する正しい方法は何ですか?
ブラウザがMIMEタイプの盗聴を防ぐことができます。 Chrome/Chromium、Edge、IE> = 8.0、Firefox> = 50、Opera> = 13など、ほとんどのブラウザはこのヘッダーを尊重しています。
Nosniffという値を指定して新しいX-Content-Type-Options応答ヘッダーを送信すると、Internet Explorerが宣言されたcontent-typeからの応答をMIMEスニッフィングすることを防ぎます。
編集:
ああ、それはHTTPヘッダーであり、HTMLメタタグオプションではありません。
http://msdn.Microsoft.com/ja-jp/library/ie/gg622941(v=vs.85).aspx も参照してください。
# prevent mime based attacks
Header set X-Content-Type-Options "nosniff"
このヘッダーは「MIME」ベースの攻撃を防ぎます。このヘッダーは、ブラウザが応答コンテンツタイプを上書きしないように指示するため、Internet Explorerが宣言されたコンテンツタイプからの応答をMIMEスニッフィングするのを防ぎます。 nosniffオプションを指定した場合、コンテンツがtext/htmlであるとサーバーが言った場合、ブラウザはそれをtext/htmlとしてレンダリングします。
説明
サーバーのX-Content-Type-Options
HTTP応答ヘッダーをnosniff
に設定すると、暗黙のコンテンツタイプを使用してデータを推測および処理するために、応答Content-Type
ヘッダーをオーバーライドするために使用される コンテンツまたはMIMEスニッフィング を無効にします。これはいくつかのシナリオでは便利かもしれませんが、以下にリストされたいくつかの攻撃につながる可能性もあります。 X-Content-Type-Options
HTTP応答ヘッダーをnosniff
に設定して返すようにサーバーを設定すると、MIMEスニッフィングをサポートするブラウザーはサーバー提供のContent-Type
を使用し、コンテンツを別のコンテンツタイプとして解釈しないように指示されます。
ブラウザのサポート
X-Content-Type-Options
HTTPレスポンスヘッダーは、Chrome、Firefox、Edge、およびその他のブラウザでサポートされています。最新のブラウザサポートは、X-Content-Type-Optionsに関するMozilla Developer Network(MDN)ブラウザ互換性表で利用可能です。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options
反撃した攻撃
MIME Confusion Attackユーザーが別のコンテンツタイプを使用してファイルを解釈する悪意のあるコードをアップロードすることで、ユーザーが生成したコンテンツサイトを介した攻撃を可能にします。暗黙的な
application/javascript
と明示的なtext/plain
。これは "ドライブバイダウンロード"攻撃を引き起こす可能性があります これはフィッシングのための一般的な攻撃方法です。ホストユーザーがコンテンツを生成したサイトは、ユーザーを保護するためにこのヘッダーを使用する必要があります。これは VeraCode および _ owasp _ で示され、次のようになります。これにより、ドライブバイダウンロード攻撃や、ユーザーがアップロードしたコンテンツを提供しているサイトが巧妙な命名によってMSIEによって実行可能ファイルまたは動的HTMLファイルとして扱われる可能性が低くなります。
不正なホットリンクは
Content-Type
スニッフィングによっても有効にできます。ある目的のためにリソースを持つサイトにホットリンクすることによって。視聴すると、アプリはコンテンツタイプの盗聴に頼ることができ、他の目的のためにサイト上で大量のトラフィックを生成することがあります。 GitHub はJavaScriptコードを表示用に表示しますが、実行用には表示しません。厄介な人間以外のユーザー(つまりコンピュータ)は、生のビュー機能を介してアセットを「ホットリンク」します。生のURLを
<script>
または<img>
タグのsrc
として使用します。問題はこれらが静的な資産ではないということです。生のファイルビューは、Railsアプリケーションの他のビューと同様に、ユーザーに返される前にレンダリングする必要があります。これはすぐにパフォーマンスに大きな負担をかけます。これまでは、このような方法で配信されている人気のあるコンテンツをブロックすることを余儀なくされてきました。
Microsoft IISサーバーの場合、web.config
ファイルでこのヘッダーを有効にできます。
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Content-Type-Options"/>
<add name="X-Content-Type-Options" value="nosniff"/>
</customHeaders>
</httpProtocol>
</system.webServer>
そして、あなたは終わりました。
X-Content-Type-Options応答HTTPヘッダーは、Content-TypeヘッダーでアドバタイズされたMIMEタイプを変更してそれに従わないようにするためにサーバーによって使用されるマーカーです。これにより、MIMEタイプの盗聴をオプトアウトすることができます。つまり、Webマスターが自分のしていることを知っていたと言えます。
構文:
Xコンテンツタイプオプション:nosniff
指令:
nosniff 要求されたタイプが1. "style"でMIMEタイプが "text/css"ではない、または2. "script"で、MIMEタイプがJavaScript MIMEタイプではない場合、要求をブロックします。
注意:nosniffは "script"と "style"タイプにのみ適用されます。また、画像にnosniffを適用すると、既存のWebサイトとの互換性がなくなります。
指定:
https://fetch.spec.whatwg.org/#x-content-type-options-header