4

この XSS やその他のハッキングの時代に、リクエストの検証が必要であることは理解できます。しかし、それは少しやり過ぎかもしれません。子供が道路に飛び出して殺されるのを防ぐために、子供の足を切り落とすようなものです。

のようなパスワードを設定できないという苦情が寄せられています<password>。私が知る限り、これを修正する唯一の方法は、ValidateRequest="false"大量のページ (登録、ログオン、パスワードのリセットなど) を設定することです。<httpRuntime requestValidationMode="2.0" />また、.NET 4.0 を使用する場合は、アプリケーション全体の設定も必要です。

これが本当に唯一の方法ですか?パスワード フィールドのみを検証しないようにする方法はありませんか?

4

2 に答える 2

3

ASP.Net MVC では、要求の検証を無効にするための次のオプションがあります。

コントローラー アクションでのリクエストの検証を無効にします。

[ValidateInput(false)]
ActionResult SomeAction(string validationIgnored){...}

(View)Model のプロパティ:

[AllowHtml]
string SomeProperty {get; set;}

またはRequest.Unvalidated()、投稿されたフォーム フィールドで使用します。

var rawField = Request.Unvalidated().Form["field"];
于 2013-10-18T05:19:16.820 に答える
3

asp.net 4 では、このような特殊なリクエストを受け入れる可能性のあるカスタム サーバー側リクエスト バリデータを作成できます。1 つ書くのは簡単です。最初のグーグルの例で、自分で書き始めることができます。

http://jefferytay.wordpress.com/2010/04/15/creating-your-own-custom-request-validation/

于 2012-08-17T11:05:41.027 に答える