excessive headers (主に侵入テストに合格するため)を削除する必要があります。 UrlScanの実行を伴うソリューションを検討するのに時間を費やしましたが、これらは Azureインスタンスが起動するたびにUrlScanをインストールする必要がある なので面倒です。
Startup.cmdからインストーラーを展開する必要のない、Azureに適したソリューションが必要です。
応答ヘッダーが 異なる場所 に追加されることを理解しています。
=を作成せずに asafaweb.com で「過剰なヘッダー」警告を回避するためにHTTP応答ヘッダーを削除/非表示/無効にするIIS7を構成する方法はありますか(web.configなどを使用して?) IIS Azureインスタンスが起動するたびに実行する必要があるモジュールまたは展開インストーラー?
次の変更により、AzureでこれらのHTTP応答ヘッダーを削除できますwithoutカスタムHttpModuleの作成。
ネット上のほとんどの情報は古く、URLScan(IIS7に統合されていますが、RemoveServerHeader=1
オプションが削除されました)。以下は私が見つけた最も近い解決策です( this blog 、 this answer 、および に感謝)このブログ を組み合わせた)。
Serverを削除するには、Global.asaxに移動し、Application_PreSendRequestHeaders
イベントと以下を追加( [〜#〜] bk [〜#〜] )および this blog this will 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>
...
MSDNの公開 この記事 Azure Webサイトでヘッダーを非表示にする方法について。 system.webServerにエントリを追加して、web.configからサーバーを非表示にできるようになりました
<security>
<requestFiltering removeServerHeader ="true" />
</security>
VSは、無効であるとして上記で眉をひそめます。上記のリンクには写真としてのコードがあり、見つけにくいです。 MVCバージョンは、x-powered-byおよび.Netバージョンと同じように、上記のようにアプリケーションの起動時に隠されます。
NuGetには、数行の設定でコードを変更せずにこれを実現するのに役立つパッケージ、NWebsecもあります。バージョンヘッダーの削除に関するドキュメントは、ここにあります: https://github.com/NWebsec/NWebsec/wiki/Suppressing-version-headers
ここでデモします: http://www.nwebsec.com/HttpHeaders/VersionHeaders (Azure)
免責事項:私はプロジェクトの開発者です。
@ giveme5minutesと@AKhooliからの以前の回答を、Azure Webサイトとスキャナーが見たい他のいくつかのアイテムに関連付けてロールアップします。これらは、AsafaWebをAzureサイトに満足させるために行った変更です。
それでも、AzureのアフィニティヘッダーCookieがhttpsだけではないという不満がありますが、アフィニティはとにかくリプレイしたいCookieの種類ですよね?
<system.web>
<compilation debug="false">
<httpRuntime enableVersionHeader="false" />
<httpCookies httpOnlyCookies="true" requireSSL="true" />
<customErrors mode="RemoteOnly" defaultRedirect="~/Error.aspx" />
</system.web>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="DENY" />
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
<security>
<!--removes Azure headers-->
<requestFiltering removeServerHeader="true" />
</security>
</system.webServer>