ASPNET4で次のエラーが発生します。
A potentially dangerous Request.Path value was detected from the client (<).
Web.configでrequestValidationMode="2.0"を使用する必要があることを読みました。
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime requestValidationMode="2.0" />
</system.web>
したがって、私のメソッドは次のようになります。
[ValidateInput(false)]
public ActionResult Search(string query, string type){
//method body
return result;
}
それは素晴らしい働きをします。ただし、他の多くのアプリケーションがこのファイルに依存しており、セキュリティの脆弱性や他の場所でエラーが発生する可能性があるため、Web.configファイルを変更できません。
私のアプリケーションは特殊文字を受け入れるのに十分安全ですが、開発中のシステムの他の部分について同じことを言うことはできません。メソッドの入力として特殊文字を受け入れる代替手段はありますか?
例:
www.mydomain.com/search/query/<myquery<ffoo/type/dept