18

サーバー応答ヘッダー IIS7 の削除

上記のリンクに基づいて、HTTP モジュールで応答ヘッダーを削除する方法を知っています。Server

なぜこのように削除する必要があるのか​​ を知りたいだけです。

4

6 に答える 6

7

Aristos リンクのコメントは、理由に対する適切な回答を提供します。

要するに、MS は人々がこの値を簡単に変更できるようにしたくないということです。マーケティングまたはその他の目的であるかどうかは、解釈の余地があります。

この議論から取り除かなければならないことの 1 つは、サーバー ヘッダーの変更は、どのような種類のセキュリティにも役立たないということです。実行中の Web サーバー ソフトウェアの種類 (およびバージョン) を正確に検出する方法は無数にあります。

そうする理由は 1 つしかありません。バイトを節約するためです。非常にトラフィックの多いサイトを運営していない限り、これは問題ではありません。トラフィックの多いサイトを運営している場合、すでに 1 つ以上のカスタム モジュールを実行している可能性があります。

于 2011-01-03T15:41:36.673 に答える
2

この例は、「サーバー」ヘッダーを実際に削除するのではなく、何か他のものを書き込むだけです。

より適切なタイトルは、「IIS7 でカスタムの「サーバー」http ヘッダーを送信する方法」です。この同様の記事を読むhttp://blogs.technet.com/b/stefan_gossner/archive/2008/03/12/iis-7-how-to-send-a-custom-server-http-header.aspx

なぜこの方法が唯一の方法ではないのか疑問に思っている場合は、Web サーバーに移動して、イニシャル ヘッダーからそれを削除するだけです。

なぜ IHttpModule + PreSendRequestHeader を使用するのか疑問に思われる場合は、これが最初の部分でヘッダーを取得し、iis がそれを行う前に最初に「サーバー」ヘッダーを配置する方法であるためです。

この助けを願っています。

于 2010-12-28T07:11:43.130 に答える
1

IIS 7 以降の web.config ファイルに outboundRule を追加して、値を空にすることもできます。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <outboundRules rewriteBeforeCache="true">
                <rule name="Remove Server header">
                    <match serverVariable="RESPONSE_Server" pattern=".+" />
                    <action type="Rewrite" value="" />
                </rule>
            </outboundRules>
        </rewrite>
    </system.webServer>
</configuration>
于 2018-01-09T16:11:16.297 に答える
0

これらのヘッダーを削除する基本的な考え方は次のとおりです

  1. セキュリティ上の理由から。攻撃者がソフトウェア (バージョン) と Web サーバーがサイトをサポートしていることを判断するのは簡単ではありません。
  2. サーバー側からブラウザ側に生成されるデータのサイズを縮小します。

HTTP 応答ヘッダーの検査の詳細を読む

于 2014-04-30T09:46:47.740 に答える
-3

Response.Headers.Set("Server", "My Awesome Server");アプリケーションプールが「統合パイプラインモード」に設定されている限り、ページコードビハインドで正常に機能します。

基本的に、IPMは、IISパイプラインをASP.NETパイプラインと統合して、この種の処理を実行できるようにすることを目的としています。議論については、 MehrdadAfshariの回答を参照してください。

于 2011-01-03T15:30:08.890 に答える