Windows Azure Web サイトで標準のサーバー ヘッダーを削除する
このポストは、11 月 22 日に投稿された Removing standard server headers on Windows Azure Web Sites の翻訳です。
編集メモ : 今回は、Windows Azure Web サイト チームのプログラム マネージャーを務める Erez Benari の投稿をご紹介します。
Web サーバーとクライアントの間で実行される HTTP 通信処理においては、要求や応答に HTTP ヘッダーが使用されています。標準的な Web サイトへの Web 要求に対する応答には、通常、以下に挙げるようなヘッダーが含まれます。
HTTP ヘッダーは、クライアントとサーバーの間の通信処理で重要な役割を果たします。ヘッダーとは、要求に関連する情報をサーバーが送信するもので、本文の一部ではありません。たとえば、Content-Length ヘッダーはブラウザーに送信される本文の長さを示し、また、Cache-Control ヘッダーは応答のキャッシュの可否を示します。
多数のヘッダーの中でも、特に注目を集めるものが 2 種類あります。要求を処理している Web サーバーの種類を通知するヘッダーとそのプロパティを通知するヘッダーです。これらのヘッダーは Web サーバーによって必ず作成されますが、一定の匿名性を保持するため、サーバーがこの情報を送信することを望んでいないユーザーが多く存在します。お客様からも「Windows Azure Web サイトでこのヘッダーを無効化できるようにしてほしい」というご意見が寄せられていたため、Windows Azure Web サイトの最新バージョンでは、これを実現しました。
ここからは、削除する方法をご説明します。
ヘッダーの削除は、IIS の一部である要求フィルター モジュールにより処理されます。ヘッダーを削除するには、以下のコードを含む web.config ファイルをサイトに保存します。
上記のコードで、Server ヘッダーが削除されます。また、X-Powered-By ヘッダーと X-AspNet-Version ヘッダーを削除したい方も多くいらっしゃることでしょう。この 2 つのヘッダーも、web.config ファイルのコードにより削除することができます。まず、X-Powered-By を削除する場合は、<system.webserver> セクションで以下のように設定します。
そして、X-AspNet-Version を削除する場合は、<system.web> セクションで以下のように設定します。
ここまで説明したすべてのヘッダーを削除する場合、web.config ファイルは次のようになります。
また、お客様のサイトに既に web.config ファイルが存在する場合は、上記の説明に従っていずれか、または両方の要素を含むようにファイルの内容を変更します。