[解決済み] Azure/IIS7 で UrlScan を使用せずに過剰な HTTP レスポンスヘッダを削除/非表示/無効にする方法
質問
私は 過剰なヘッダ を削除する必要があります (主に侵入テストに合格するため)。UrlScan を実行するソリューションを調べるのに時間を費やしましたが、これらのソリューションは Azure インスタンスを起動するたびに UrlScan をインストールする必要がある .
startup.cmd からインストーラーをデプロイしない、Azure のための良いソリューションがあるはずです。
レスポンスヘッダが追加されるのは理解していますが 異なる場所 :
- サーバー : IISによって追加されました。
- X-AspNet-Version : System.Web.dll により、HttpResponse クラスの Flush 時に追加されます。
- X-AspNetMvc-バージョン : System.Web.dll の MvcHandler によって追加されました。
- X-Powered-By : IISによって追加されました。
での "Excessive Headers" 警告を回避するために、HTTP レスポンス ヘッダーを削除/非表示/無効にするように IIS7 を設定する (web.config などで?) 方法はありますか? asafaweb.com IIS モジュールを作成したり、Azure インスタンスが起動するたびに実行する必要のあるインストーラーを配布したりせずに?
どのように解決するのですか?
以下の変更により、Azure でこれらの HTTP レスポンスヘッダを削除することができます。 を使用せずに カスタム HttpModule を書くことなく、これらの HTTP レスポンス ヘッダーを削除できます。
ネット上の情報のほとんどは古く、UrlScan (これはその後 IIS7 に統合されましたが、その際
RemoveServerHeader=1
オプションは削除されました)。以下は、私が見つけた最も巧妙な解決策です (以下のサイトに感謝します)。
このブログ
,
この回答
そして
このブログ
を組み合わせたもの)。
を削除するには
サーバー
を削除するには、Global.asax で
Application_PreSendRequestHeaders
イベントを見つけ、以下を追加します。
BK
と
このブログ
を追加した場合、Cassini / local devで失敗することはありません)。
2014年4月に編集されました。PreSendRequestHeaders および PreSendRequestContext イベントは、ネイティブの IIS モジュールで使用できますが、IHttpModule を実装するマネージドモジュールでは使用しないでください。これらのプロパティを設定すると 非同期リクエスト . 正しいバージョンは BeginRequest イベントを使用することです。
protected void Application_BeginRequest(object sender, EventArgs e)
{
var application = sender as HttpApplication;
if (application != null && application.Context != null)
{
application.Context.Response.Headers.Remove("Server");
}
}
を削除するには
X-AspNet-Version
を削除するには、web.config の find/create にある
<system.web>
を見つけて、追加してください。
<system.web>
<httpRuntime enableVersionHeader="false" />
...
を削除するには
X-AspNetMvc-Version
を削除するには、Global.asax で
Application_Start
イベントを見つけ、次のような行を追加します。
protected void Application_Start()
{
MvcHandler.DisableMvcResponseHeader = true;
}
を削除するには
X-Powered-By
を削除するには、web.config の find/create で
<system.webServer>
を見つけて、追加してください。
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
...
関連
-
.NET複数データベース一括データ挿入、更新(SqlServer、MySql、PgSql、Oracleをサポートします。)
-
30分でわかるコング経由の.NETゲートウェイ
-
ネットのメモリ管理に関する5つの基本
-
ASP.NET Core Dependency Injectionフレームワークの活用
-
ASP.NET Coreで複数のサービス実装クラスをインジェクトする方法
-
[解決済み] ASP.NET WebサイトとASP.NET Webアプリケーションのどちらを選ぶか?
-
[解決済み] ASP.NET MVC - カスタムIIdentityまたはIPrincipalの設定
-
[解決済み] IIS7 の「クラシック」パイプラインモードと「統合」パイプラインモードの違いは何ですか?
-
[解決済み] ASP.NETでConsole.WriteLineはどこに行くのですか?
-
[解決済み] ASP.NETの新しいセキュリティ脆弱性の深刻度と回避方法について教えてください。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
30分でわかるコング経由の.NETゲートウェイ
-
ASP.NET Core Web API チュートリアル プロジェクト構成図
-
[解決済み] System.Data.Entity.Internal.AppConfig' の型イニシャライザーで例外が発生しました。
-
[解決済み] ファイルまたはアセンブリ 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821' を読み込めません でした。
-
[解決済み] クライアントから危険な可能性のあるRequest.Formの値が検出された
-
[解決済み] Razor View Page で名前空間をインポートするにはどうしたらいいですか?
-
[解決済み] カタナ」と「オウイン」をわかりやすく説明すると?
-
[解決済み] イベントログへの書き込み時にSystem.Security.SecurityExceptionが発生する。
-
[解決済み] ASP.NET MVCのAjaxポストでantiforgerytokenを含める。
-
[解決済み] ASP.NET_SessionId + OWIN Cookieがブラウザに送信されない。