web-dev-qa-db-ja.com

"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" />

しかし、私はまだ警戒を受けます。

パラメータを設定する正しい方法は何ですか?

228
Koffeehaus

ブラウザがMIMEタイプの盗聴を防ぐことができます。 Chrome/Chromium、Edge、IE> = 8.0、Firefox> = 50、Opera> = 13など、ほとんどのブラウザはこのヘッダーを尊重しています。

https://blogs.msdn.com/b/ie/archive/2008/09/02/ie8-security-part-vi-beta-2-update.aspx?Redirected=true

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 も参照してください。

147
Remi Gacogne
# prevent mime based attacks
Header set X-Content-Type-Options "nosniff"

このヘッダーは「MIME」ベースの攻撃を防ぎます。このヘッダーは、ブラウザが応答コンテンツタイプを上書きしないように指示するため、Internet Explorerが宣言されたコンテンツタイプからの応答をMIMEスニッフィングするのを防ぎます。 nosniffオプションを指定した場合、コンテンツがtext/htmlであるとサーバーが言った場合、ブラウザはそれをtext/htmlとしてレンダリングします。

http://stopmalvertising.com/security/securing-your-website-with-.htaccess/.htaccess-http-headers.html

99
Won Jun Bae

説明

サーバーの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

反撃した攻撃

  1. MIME Con​​fusion Attackユーザーが別のコンテンツタイプを使用してファイルを解釈する悪意のあるコードをアップロードすることで、ユーザーが生成したコンテンツサイトを介した攻撃を可能にします。暗黙的なapplication/javascriptと明示的なtext/plain。これは "ドライブバイダウンロード"攻撃を引き起こす可能性があります これはフィッシングのための一般的な攻撃方法です。ホストユーザーがコンテンツを生成したサイトは、ユーザーを保護するためにこのヘッダーを使用する必要があります。これは VeraCode および _ owasp _ で示され、次のようになります。

    これにより、ドライブバイダウンロード攻撃や、ユーザーがアップロードしたコンテンツを提供しているサイトが巧妙な命名によってMSIEによって実行可能ファイルまたは動的HTMLファイルとして扱われる可能性が低くなります。

  2. 不正なホットリンクContent-Typeスニッフィングによっても有効にできます。ある目的のためにリソースを持つサイトにホットリンクすることによって。視聴すると、アプリはコンテンツタイプの盗聴に頼ることができ、他の目的のためにサイト上で大量のトラフィックを生成することがあります。 GitHub はJavaScriptコードを表示用に表示しますが、実行用には表示しません。

    厄介な人間以外のユーザー(つまりコンピュータ)は、生のビュー機能を介してアセットを「ホットリンク」します。生のURLを<script>または<img>タグのsrcとして使用します。問題はこれらが静的な資産ではないということです。生のファイルビューは、Railsアプリケーションの他のビューと同様に、ユーザーに返される前にレンダリングする必要があります。これはすぐにパフォーマンスに大きな負担をかけます。これまでは、このような方法で配信されている人気のあるコンテンツをブロックすることを余儀なくされてきました。

94
Grokify

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>

そして、あなたは終わりました。

21
ComeIn

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

6
Sahil Aggarwal