IIS のレスポンスヘッダを削除する
以下を削除する。
Server: Microsoft-IIS/7.5 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET
(X-Powered-By
は IIS マネージャの「HTTP 応答ヘッダー」から削除する)
IHttpModule を継承したクラスで PreSendRequestHeaders イベントを使う
Imports System.Web Public Class HttpResponseServerName Implements IHttpModule Public Sub Init(ByVal context As HttpApplication) Implements IHttpModule.Init AddHandler context.PreSendRequestHeaders, AddressOf Me.OnPreSendRequestHeaders End Sub Public Sub Dispose() Implements IHttpModule.Dispose End Sub Public Sub OnPreSendRequestHeaders(sender As Object, e As EventArgs) HttpContext.Current.Response.Headers.Remove("Server") HttpContext.Current.Response.Headers.Remove("X-AspNet-Version") End Sub End Class
web.config に追記する
<configuration> <system.webServer> <modules> <add name="HttpResponseServerName" type="myNameSpace.HttpResponseServerName" /> </modules> </system.webServer> </configuration>
なお Remove Unwanted HTTP Response Headers - varunm - Site Home - MSDN Blogs にキー別の対処法が書いてあるが面倒。
IIS7 の機能を拡張してみる-レスポンスヘッダー内のサーバー名の改ざん にある手順も参照したが「マネージモジュールの追加」のドロップダウンリストに上記クラスが出てこなかった。 GAC に入れないとダメなのかもしれない。