2009-04-01 12 views
0

Am bekommen diesen Fehler in meiner asp.net Seite:ASP.Net Fehler

Ein potenziell gefährlicher Request.Form Wert vom Client erkannt wurde (ctl00 $ DefaultContent $ UCSimpleSearch $ txtFind = "$%^& #%^& @ #% @ ").

Ich erhalte diese Störung, wenn ich $%^& #%^& @ geben #% @ in einer Textbox dieser Seite und senden Sie treffen.

Wie überwinde ich diesen Fehler? Wird empfohlen, validateRequest = false in der Page-Direktive zu setzen, um das loszuwerden?

Danke.

Antwort

2

Die Einstellung ValidateRequest auf false ist eine Möglichkeit, diesen Fehler zu umgehen. Sie müssen entscheiden, ob eines dieser Zeichen gültige Eingabezeichen für Ihr Formular ist. Wenn dies der Fall ist, müssen Sie diese Option deaktivieren und sicherstellen, dass Sie alle Benutzereingaben korrekt verarbeiten.

Ich kann nicht scheinen, eine Liste der gefährlichen Charaktere zu finden, also wenn jemand einen kennt, wäre es wert, einen Link zu ihm zu haben.

Einige gute Informationen können here gefunden werden.

Als allgemeine Regel sollten Sie immer html kodieren alle Daten, die Sie auf Ihrer Website platzieren, so dass diese ausschalten sollte keinen Schaden verursachen. Wenn Sie sich jedoch nicht sicher sind, ob Sie es sind, lassen Sie es am besten und lassen Sie diese Daten nicht in Ihrem Formular zu.

-1

Es bedeutet, dass Sie nicht Werte enthält HTML-Tags an den Server veröffentlichen können, wurde

Wenn Sie Benutzern zu ermöglichen, haben veröffentlichen HTML-Tags Sie können validateRequest sehr früheren Versionen von .NET Framework aus Sicherheitsgründen hinzugefügt hinzufügen = "false" zur Seitendirektive

1

Das Setzen von validateRequestRequest = false in der Seitenanweisung sollte nur dann erfolgen, wenn Sie sicher sind, dass Sie es selbst validieren und alles haben wollen, was für jeden verfügbar ist zu deinem Server.

Wenn die eingegebene Zeichenfolge eine gültige Eingabe ist, müssen Sie die Anforderungsvalidierung deaktivieren.

0

Wird empfohlen, validateRequest = false in der Page-Direktive zu setzen, um dies zu beseitigen?

Wenn Sie die Validierung der Textbox-Eingabe explizit behandeln können, warum nicht?