3

私は実稼働サーバーにある 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"/>
  1. X-Powered の場合、system.webserver セクションに以下のコードを追加しました

しかし、サーバーヘッダーの削除コードは機能していません:(

私が使用しているコードは次のとおりです。

  1. 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 つの設定以外に、さらにセキュリティを確保する方法はありますか?

4

3 に答える 3

1

これがあなたの質問に直接答えない場合は申し訳ありませんが、それらのヘッダーを削除する必要はありません。ブラウザー側の html コードを見ることで、誰かがあなたが使用しているサーバーを簡単に見つけることができます。

ソース コードを見て __VIEWSTATE のようなものを見つけたら、これが ASP.NET であることがすぐにわかります。もう少し掘り下げれば、おそらくバージョンもわかるでしょう。

私が提案したいのは、SQL インジェクションに対して無防備であることを確認する、サーバー側ですべてを検証する、すべてのバックアップが整っていることを確認し、数分で準備が整っていることを確認するなど、標準的なセキュリティとリスクの手順に集中することです。 、必要に応じて認証の追加レイヤーを追加し、サーバーにすべてのセキュリティ更新プログラムがあることを確認するなど…

于 2013-09-04T13:10:39.640 に答える