0

人々は私たちのサイトに外部からリンクしていますが、その際に「不正なパラメータ」を渡すことで、リンク先のページを本質的に破壊しています。彼らは、次のような URL を提供することでこれを行っています。

http://domain.com/page.htm?ke&y=値

パラメータ名にアンパサンドが含まれていることがわかります。これにより、IIS が次のエラーで失敗します。

URL の実行に失敗しました。

at System.Web.Hosting.ISAPIWorkerRequestInProcForIIS6.BeginExecuteUrl(

誰かが私たちのサイトを壊す力を持たないようにしたいと思います。次に、リンク プロバイダーが間違っていたとしても、ユーザーが目的のページにアクセスできるようにしたいと考えています。

クエリ文字列エラーを無視して URL を実行するように IIS を構成するにはどうすればよいですか?

4

1 に答える 1

1

たまたま、これは、当初 .NET 1.1 を対象とし、その後 .NET 2.0 にアップグレードされた当社のソリューションの癖のように見えました*。.NET 1.1 は、標準の html (*.htm) ファイルを処理HttpHandlerするように構成するグローバル レベル (machine.config?) で を登録しているようですが、.NET 2.0 ではこれが変更されています。StaticFileHandler

そのため、アップグレード時にローカル アプリケーションの構成にハンドラーを登録しないと、デプロイ時に IIS が *.htm ファイルを処理しようとし、特定のインスタンスで停止します (質問で説明されている状況で)。

httpHandlers解決策は、これを構成のセクションに追加することです。

<add verb="*" path="*.htm" type="System.Web.StaticFileHandler" />

これを修正して以来、複製と文書化に投資する時間がなかったからです

于 2013-02-07T10:14:56.543 に答える