1. Web サーバー

Web サーバー

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

クライアントは、Web サーバーに HTTP 要求を行う場合、いくつかの HTTP ヘッダーとともに要求を送信します。既定の設定では、これらのヘッダーの一部には、攻撃に対するサーバーの脆弱性を高める可能性のある情報が含まれています。

したがって、次のヘッダーをオフにすることを強くお勧めします。

  • Server: サーバーが HTTP 要求を処理するために使用するソフトウェア。例: "Microsoft-IIS/7.5"。
  • X-Powered-By: Web アプリケーションによって実行されているテクノロジーまたはフレームワークを指定します。例: "PHP/5.4.0"。
  • [X-AspNet-Version]: ASP.NET のバージョンを保持します。例: "4.0.303319"。
  • [X-AspNetMvc-Version]: ASP.NET に固有であり、MVC のバージョンを識別します。例: "3.0"。

また、X-Content-Type-Options ヘッダーを nosniff に設定します。nosniff 応答ヘッダーは、Web サイトにセキュリティを追加する方法です。nosniff 応答ヘッダーは、ブラウザーがサーバーによって宣言されている応答から離れて、応答の content-type を mime-sniff しようとするのを防ぎます。

次のセクションでは、これらの対策がどのように適用されるかについて説明します。

Server

IIS 10 以降

バージョン 10 (Windows Server 2016 に同梱) 以降、Server ヘッダーは、web.config ファイルを更新することで削除されます。

例:

<system.webServer>
<security>
<requestFiltering removeServerHeader="true"/>
</security>
</system.webServer>

古いバージョン

古いバージョンはヘッダーの削除をサポートしていませんが、値は書き換えルールによって変更されています。

例:

<system.webServer>
<rewrite>
<outboundRules>
<rule name="changeServerHeader">
<match serverVariable="RESPONSE_Server" pattern=".*" />
<action type="Rewrite"/>
</rule>
</outboundRules>
</rewrite>
</system.webServer>

これにより、Server ヘッダーは空の値で上書きされます。

X-Powered-By

X-Powered-By ヘッダーも設定によって削除されます。

例:

<system.webServer>   
<httpProtocol allowKeepAlive="true">
<customHeaders>
<remove name="X-Powered-By" />      
</customHeaders>
</httpProtocol>
<system.webServer/>

X-AspNet-Version

X-AspNet-Version ヘッダーは、system.web 要素を見つけて、<httpRuntime enableVersionHeader="false"/> という行を追加することによって削除されます。

例:

<system.web>
<httpRuntime enableVersionHeader="false"/>
</system.web>

X-AspNetMvc-Version

X-AspNetMvc-Version ヘッダーは、global.asax ファイルにコードを少し追加することで削除されます。

MvcHandler.DisableMvcResponseHeader = true;
注意

ポータル Web アプリケーションは、既定でヘッダーを省略します。

X-Content-Type-Options

このヘッダーは、 customHeaders 要素を作成し、<add name="X-Content-Type-Options" value="nosniff"/> という行を追加することで付加しました。

<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Content-Type-Options"/>
<add name="X-Content-Type-Options" value="nosniff"/>
</customHeaders>
</httpProtocol>
</system.webServer>

X-Frame-Options

他の Web サイトがフレーム内に Content Hub を含まないようにするため、X-Frame ヘッダーを設定します。

<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="DENY" />
</customHeaders>
</httpProtocol>

入力可能な値は次のとおりです。

注意

Content Hub を特定の実装のフレームとして使用できるようにする必要がない限り、DENY を使用します。

X-XSS-Protection

XSS 攻撃に対する追加の保護レイヤーとして、X-XSS-Protection ヘッダーを設定します。このヘッダーには次の値を指定できます。

  • 0: XSS フィルタリングを無効にします。
  • 1: XSS フィルタリングを有効にします (通常、ブラウザーの既定)。クロスサイト スクリプト攻撃が検出された場合、ブラウザーはページをサニタイズします (安全でない部分を削除します)。
  • 1; mode=block: XSS フィルタリングを有効にします。攻撃が検出された場合、ブラウザーはページをサニタイズするのではなく、ページのレンダリングを阻止します。
  • 1; report= : XSS フィルタリングを有効にします。クロスサイト スクリプト攻撃が検出された場合、ブラウザーはページをサニタイズし、違反を報告します。これは、CSP の report-uri ディレクティブの機能を使用して、レポートを送信します (Chromium のみ)。
<httpProtocol>
<customHeaders>
<add name="X-XSS-Protection" value="1; mode=block" />
</customHeaders>
</httpProtocol>
注意

詳細はここに記載されています。

第三者による Cookie の盗難を防ぐために、Secure/HTTPOnly フラグを追加します。安全なフラグを使用することにより、Cookie は HTTPS 接続を介してのみ送信されます。HTTPOnly フラグは、JavaScript による Cookie へのアクセスを防止します。これは、XSS 攻撃に対する追加の保護レイヤーです。

例:

<system.web>
<httpCookies httpOnlyCookies="false" requireSSL="true" />
</system.web>
この記事を改善するための提案がある場合は、 お知らせください!