私は実稼働サーバーにある Web サイトを持っており、非常に安全であるはずなので、不要な情報が漏洩しないように http ヘッダーを保護したいと考えています。
http ヘッダーの保護についてネットで検索しましたが、これまでのところ、削除などのアンテッド情報を削除できることがわかりました
'Server Microsoft-IIS/7.5
X-AspNet-Version 4.0.303319
X-Powered-By ASP.NET -'
X-Aspnet と X のソリューションを見つけました: 1. X-AspNet の場合、system.web セクションに以下のコードを追加しました。
<httpRuntime enableVersionHeader="false"/>
X-Powered の場合、system.webserver セクションに以下のコードを追加しました
しかし、サーバーヘッダーの削除コードは機能していません:(
私が使用しているコードは次のとおりです。
CustomHeaderModule という名前のクラスを追加しました。そのクラス内のコードは次のとおりです。
/// /// CustomHeaderModule の概要説明 /// public class CustomHeaderModule : IHttpModule {
public void Dispose() { throw new NotImplementedException(); } public void Init(HttpApplication context) { context.PostReleaseRequestState += PostReleaseRequestState; } void PostReleaseRequestState(object sender, EventArgs e) { //HttpContext.Current.Response.Headers.Remove("Server"); // Or you can set something funny HttpContext.Current.Response.Headers.Set("Server", "CERN httpd"); }
}
そして、これをweb.configのsystem.webserverセクションに登録しました
<modules runAllManagedModulesForAllRequests="true">
<add name="CustomHeaderModule" type="CustomHeaderModule" />
</modules>
今、このコードは機能していません..クロムブラウザのヘッダーにサーバーがまだ表示されています..
どうすればこれを修正できますか? これらの 3 つの設定以外に、さらにセキュリティを確保する方法はありますか?