/ search / <searchterm>を介して検索できるルートを持つASP.NET MVCアプリケーションがあります。
「search / abc」を指定するとうまく機能しますが、「/ search / a + b + c」(正しくURLエンコードされた)を指定すると、IIS7はHTTPエラー404.11でリクエストを拒否します(リクエストフィルタリングモジュールは、二重エスケープシーケンスを含むリクエスト)。まず、なぜこれを行うのですか?URLの一部である場合にのみエラーをスローするようですが、クエリ文字列の一部ではありません(/ transmit?q = a + b + cは正常に動作します)。
これで、web.configのセキュリティセクションでダブルエスケープリクエストを有効にできますが、影響を理解できず、サーバーがリクエスト "a + b + c"を拒否する理由もわからないため、そうすることをためらっています。 URLの一部ですが、クエリ文字列の一部として受け入れます。
誰かが何をすべきかを説明し、いくつかのアドバイスを与えることができますか?
/search/a%2520b%2520c
マークアップになってしまい、「潜在的に危険なRequest.Path値がクライアントから検出されました(%)」というエラーが発生しました。勝てないようです。