2009-05-15 5 views
1

Ich erhalte einen Überprüfungsfehler, wenn ein Benutzer einen fremden Namen eingibt. Ein Beispiel ist:ASP.NET-Überprüfung

System.Web.HttpRequestValidationException: Ein potenziell gefährlicher Request.Form-Wert wurde vom Client erkannt (ctl00 $ pageContent $ txtName = "Pedro ú logo").

wo die ú übersetzt wird als & # 250; (ohne die Leerzeichen natürlich)

Diese fremden Zeichen sind akzeptabel und sollten keinen Überprüfungsfehler verursachen. Ich möchte ASP.NET Validierung unter Verwendung von UTF-16 zu überprüfen und nicht UTF-8

Viele Websites, Blogs und Foren sagen einfach Validierung zu deaktivieren. (Dh ValidateRequest = "false")

Gibt es ein Weg um dies OHNE die Validierung zu deaktivieren? Das Deaktivieren der Validierung ist für diese Anwendung nicht akzeptabel.

Danke, Jeff

Antwort

1

Es ist nicht wirklich möglich Anfrage Validierungsmechanismus zu zwicken. Es ist irgendwie hart codiert. Ich sehe keinen Grund, warum Sie es nicht deaktivieren möchten. Wenn Sie sich um die Bereinigung und HTML-Codierung kümmern, die Sie vom Benutzer erhalten und auf der Seite anzeigen möchten (was Sie trotzdem tun sollten, unabhängig von der Validierung von ASP.NET-Anfragen), würden Sie nicht viel davon brauchen.

+0

Große Antwort. Ich stehe immer wieder auf die Mythen um die Validierung von Anfragen - die Leute sagen immer, dass es ein potenzielles Sicherheitsloch öffnet, aber ich habe noch keine Beispiele gesehen, in denen jemand es ausnutzt, was sowieso nicht möglich ist. – womp