ASP.NET アプリケーションの「潜在的に危険な Request.Path」エラーへの対処
ASP.NET アプリケーションは、「潜在的に危険な Request.Path 値がクライアントから検出されました」エラーをスローすることがあります。これは通常、要求された URL にアスタリスク (*) などの特殊文字が含まれている場合に発生します。 これは、検索クエリや珍しい文字を含む URL によって引き起こされることがよくあります。
ここではいくつかの解決策を示します:
1. web.config
ファイルの変更:
.NET 4.0 以降の場合、web.config
ファイル内で許可される文字をカスタマイズできます。 <httpRuntime>
要素を見つけて、requestPathInvalidCharacters
属性を追加します。 アスタリスクを許可するには、無効な文字のリストからアスタリスクを削除します:
<code class="language-xml"><system.web> <httpRuntime requestPathInvalidCharacters="<,>,&,:,\,?" /> </system.web></code>
URL パスで特殊文字をサポートする必要がある場合、このアプローチは通常、この問題を処理する最も簡単で効率的な方法です。
2.手動 URL エンコード/デコード:
または、UrlEncode
や UrlDecode
などの関数を使用して、URL 内の特殊文字を手動でエンコードおよびデコードすることもできます。この方法では、より多くのコーディングが必要となり、保守が複雑になる可能性があるため、他のオプションが不適切でない限り、あまり望ましくありません。
3.クエリ文字列の使用:
よりクリーンなアプローチには、クエリ文字列を使用して検索語またはフィルターを送信することが含まれます。 特殊文字をパスに直接埋め込む代わりに、パラメータとして渡します。 たとえば、https://example.com/Search/test*/0/1/10/1
の代わりに https://example.com/Search?term=test*&filter1=0&filter2=1&filter3=10&filter4=1
を使用します。
推奨されるアプローチ:
最適なソリューションは、アプリケーションの特定のニーズによって異なります。 アプリケーションで URL パスに特殊文字を使用する必要がある場合、web.config
ファイルを変更するのが最も簡単で効果的な方法です。 そうでない場合は、クエリ文字列を使用すると、手動のエンコード/デコードと比較して、より堅牢で保守可能なソリューションが提供されます。
以上が「潜在的に危険なリクエスト。クライアントからパス値が検出されました」を修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。