1. ホーム
  2. asp.net

クライアントから危険な可能性のある Request.Path 値が検出されました。

2022-02-23 18:27:06

ASP.net 4.0 で URL オリエンテーションを使用すると、次のようなアドレスにアクセスすることになります。 http://wz.csdn.net/yanjinde77/一个面试题! ********/ と表示され、エラーが報告されます。 

クライアントから危険な可能性のあるRequest.Pathの値が検出されました。

ValidateInputIfRequiredByConfig() at System.Web.HttpRequest.  

System.Web.HttpApplication.IExecutionStep.Execute() で、ValidateRequestExecutionStep を実行します。  

at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

これは、上記アドレスに特殊文字「*」が含まれているためです。

ASP.netがこれらの特殊文字を横取りしないようにするには、Web.configの次のセクションを設定する必要があります。

<未定義


xml version="1.0"? >





<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">





	<system.web>





		<httpRuntime requestPathInvalidCharacters="" />





	</system.web>





</configuration>


xml version="1.0"? > <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> <system.web> <httpRuntime requestPathInvalidCharacters="<,>,*,%,:,&,/" /> </system.web> </configuration>
<system.web>
<httpRuntime requestPathInvalidCharacters="" />
</system.web>
</configuration>

ただし requestPathInvalidCharacters これは、無効な文字をカンマで区切ったリストである。設定されていない場合、無効な文字( , で区切られた)のデフォルトのセットは次の7つです: <,>,*,%,&,:,/

つまり、この属性を設定しない場合、デフォルトは以下の設定となります。

<未定義


xml version="1.0"? >


<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.web>
<httpRuntime requestPathInvalidCharacters="<,>,*,%,:,&,/" />
</system.web>
</configuration>

これらの文字をすべて無制限にしたい場合は、以下のように設定します。 requestPathInvalidCharacters = "" のように、一部が制限され、一部が制限解除されている場合は、その部分に requestPathInvalidCharacters の中にある requestPathInvalidCharacters が、制限のないものには適用されない。

参考までに。

おかしな実験。ASP.NET/IISのリクエストURLでパーセント、角括弧、その他のいたずらなものを許可する
http://www.budoou.com/article/981320/