HTTPレスポンスヘッダーに出力される情報
ASP.NETアプリケーションを普通に開発や運用していて、ブラウザの開発者ツールでネットワーク周りを見ていると、
HTTPレスポンスヘッダーに以下のような情報が出力されていることが確認できます。
ServerやX-AspNet-Version、X-AspNetMvc-Version、X-Powerd-Byといった要素に、ASP.NETやIISを使っていること、またはそのバージョンが出力されています。
別に問題ないといえば問題ないんですが、何となく何のサーバー使ってて何のWebフレームワークで開発しているのかをオープンにしたくない場合、
これらの情報をサーバーサイドで削除することができます。
削除方法
Server
Global.asaxに以下の処理を追記します。
リクエストのパイプライン上であれば、どのイベントでも大丈夫なようです。
Response.Headers.Remove("Server");
X-AspNet-Version
Web.configでsystem.Webセクション内のhttpRuntime要素でenableVersionHeaderプロパティをfalseに設定します。
<system.web>
…
<httpRuntime … enableVersionHeader="false" />
…
</system.web>
X-AspNet-Mvc-Version
Global.asaxに以下の処理を追記すると削除されます。
これもリクエストのパイプライン上であれば、どのイベントでも大丈夫なようです。
MvcHandler.DisableMvcResponseHeader = true;
X-Powered-By
Web.config内でsystem.webServerセクション内のhttpProtocol要素にあるcustomHeaders要素からX-Powered-Byを削除します。
removeでなくclearでも大丈夫ですが、余計なものまで消されて何かが動かなくなる可能性はあります。
<system.webServer>
…
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
…
</system.webServer>
結果
上記の設定を全て行った後に、もう一度開発者ツールを使用すると以下のようになります。
Microsoftプラットフォームのアプリだとバレずに済みますね!