「X-Content-Type-Options = nosniff」とは何ですか?


291

OWASP ZAPを使用してローカルホストで侵入テストを行っていますが、次のメッセージが報告され続けます。

Anti-MIME-Sniffingヘッダー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" />

しかし、私はまだアラートを受け取ります。

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

回答:


178

ブラウザが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

no-nsniffという値を持つ新しいX-Content-Type-Options応答ヘッダーを送信すると、Internet Explorerが宣言されたcontent-typeから離れた場所で応答をMIMEスニフィングできなくなります。

編集:

ああ、それはHTTPヘッダーであり、HTMLメタタグオプションではありません。

参照:http : //msdn.microsoft.com/en-us/library/ie/gg622941(v=vs.85).aspx


22
あなたはそれがそうであることを言及しなければなりませんfor servers hosting untrusted content。ユーザーがアップロードしたコンテンツを表示しないWebサイトの場合、これを設定する必要はありません。
machineaddict 2014

12
@machineaddict、間違っています。コンテンツが信頼されているかどうかに関係なく、スニッフィングが発生します。security.stackexchange.com/a/11761/2379を参照してください。それはあなたのサイトを微妙な方法で壊します。驚きが気に入らない場合は、常にスニッフィングを無効にしてください。
Pacerier 2015年

33
「MIMEタイプのスニッフィングとは」という部分を見逃したと思います。
VarunAgw 2016年

3
firefox現在、このヘッダーもサポートしています:developer.mozilla.org/en-US/docs/Web/HTTP/Headers/…–
VasiliNovikov

ヘッダーの「強制」は「必要」と誤解される可能性があるため、「敬意」に変更しました。
チャーリー

135

説明

サーバーのX-Content-Type-OptionsHTTP応答ヘッダーを設定して、nosniffブラウザーにコンテンツまたはMIMEスニッフィングを無効にするように指示します。これは、応答Content-Typeヘッダーをオーバーライドして暗黙的なコンテンツタイプを使用してデータを推測および処理するために使用されます。これは一部のシナリオでは便利な場合がありますが、以下に示す攻撃にもつながる可能性があります。に設定X-Content-Type-OptionsされたHTTP応答ヘッダーを返すようにサーバーを構成すると、nosniffMIMEスニッフィングをサポートするブラウザーに、サーバーが提供Content-Typeするコンテンツを使用し、コンテンツを別のコンテンツタイプとして解釈しないように指示します。

ブラウザのサポート

X-Content-Type-OptionsHTTPレスポンスヘッダはクロム、Firefoxとエッジならびに他のブラウザでサポートされています。最新のブラウザーサポートは、Mozilla Developer Network(MDN)ブラウザーのX-Content-Type-Optionsの互換性表で入手できます。

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options

打ち消された攻撃

  1. MIMEの混乱攻撃は、ユーザーがアップロード例えば、代替コンテンツタイプを使用してファイルを解釈するブラウザで実行される悪意のあるコード、暗黙的に許可することで、ユーザー生成コンテンツサイト経由での攻撃を可能にapplication/javascript明示的な対をtext/plain。これにより、フィッシングの一般的な攻撃経路である「ドライブバイダウンロード」攻撃が発生する可能性があります。ユーザー生成コンテンツをホストするサイトは、このヘッダーを使用してユーザーを保護する必要があります。これは、 VeraCode OWASPで次のように述べられています。

    これにより、ドライブバイダウンロード攻撃や、巧妙な命名により、MSIEが実行可能ファイルまたは動的HTMLファイルとして扱うことができるユーザーがアップロードしたコンテンツを提供するサイトへの露出が減少します。

  2. 不正なホットリンクは、Content-Typeスニッフィングによって有効にすることもできます。表示などの目的でリソースを含むサイトにホットリンクすることで、アプリはコンテンツタイプのスニッフィングに依存し、利用規約に違反している可能性がある別の目的でサイトに大量のトラフィックを生成できます。たとえば、 GitHubは表示用のJavaScriptコードを表示します。実行用ではありません:

    いくつかの厄介な非人間のユーザ(すなわちコンピュータ)は、生のビュー機能を経由して資産を「ホットリンク」に取っている-として生のURLを使用するsrcため<script>、または<img>タグ。問題は、これらが静的なアセットではないことです。Railsアプリの他のビューと同様に、rawファイルビューは、ユーザーに返される前にレンダリングする必要があります。これにより、すぐにパフォーマンスが大幅に低下します。過去には、サーバーに過度の負担をかけるため、この方法で提供される人気のあるコンテンツをブロックせざるを得ませんでした。


明示的なcontent-typeを無視して推測作業を使用することを決定するのは良い考えだと誰が思ったのでしょうか。omg ...
サムサーリー

105
# prevent mime based attacks
Header set X-Content-Type-Options "nosniff"

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

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


1
これはいつもそうではありませんか?!ブラウザが「スマート」に動作し、明示的なcontent-typeヘッダーを無視しようとするのは奇妙です。
Sam Sirry

25

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>

これで完了です。


3
IISでカスタムヘッダーを設定することも可能ですが、構成管理よりもソース管理が可能なため、ソリューションの方が優れています。
ajeh 2017年

9

X-Content-Type-Options応答HTTPヘッダーは、サーバーが使用するマーカーであり、Content-TypeヘッダーでアドバタイズされたMIMEタイプを変更して従わないことを示します。これにより、MIMEタイプのスニッフィングをオプトアウトできます。つまり、Webマスターが何をしていたかを知っていたと言えます。

構文:

X-Content-Type-Options:nosniff

ディレクティブ:

nosniff 要求されたタイプが1.「スタイル」でMIMEタイプが「テキスト/ css」でない場合、または2.「スクリプト」であり、MIMEタイプがJavaScript MIMEタイプでない場合、要求をブロックします。

注:nosniffは「スクリプト」および「スタイル」タイプにのみ適用されます。また、画像にnosniffを適用すると、既存のWebサイトとの互換性がないことが判明しました。

仕様:

https://fetch.spec.whatwg.org/#x-content-type-options-header

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.