3 Stimmen

Kodierung von HTML vor dem Senden an Controller/DB

A potentially dangerous Request.Form value was detected from the client (Body="<b></b>").

Dieser Fehler tritt auf, wenn ich versuche, etwas einzugeben wie <b></b> in mein Kommentarfeld und senden Sie es ab. Ich habe gesucht und das Einzige, was ich finde, ist, die Validierung für gefährliche Daten insgesamt zu deaktivieren, aber ich will sie nicht deaktivieren, da meine Website dann angreifbar ist.
Was ich möchte, ist die Verschlüsselung vor dem Senden oder etwas in dieser Richtung, so dass es die Daten, nur verschlüsselt senden wird.

11voto

Richard Forrest Punkte 3488

Wenn Sie .net 4 verwenden, können Sie Ihr Modell mit [AllowHtml] schmücken, das nur diese spezifische Eigenschaft durchlässt. Sie können dann sanitize es in der Controller-Logik.

public class MyViewModel
{
    public string prop1 { get; set; }

    [AllowHtml]
    public string prop2 { get; set; }
}

8voto

Tim Punkte 27854

Warum nicht einfach die Methode HttpUtility.HtmlEncode verwenden?

string encodedHTML = HttpUtility.HtmlEncode(unencodedString)

Sie könnten sich auch Microsofts Anti-XSS-Bibliothek .

0voto

nWorx Punkte 2105

Was über das Hinzufügen eines Javascript-Ereignisses auf die Schaltfläche "Senden", die die textvalues vor dem Senden des Formulars verschlüsselt?

encodeURI oder encodeUriComponent versuchen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X