Frage

Ich bin mit einem rich-text-editor auf eine web-Seite..NET hat die Funktion, die verhindern, dass man vom setzen der HTML-tags, also habe ich ein JavaScript-snippet, um den Winkel Klammern und alias-pair-Mädchen-Zeichen vor der post.Das alias ersetzt wird, auf den server mit den erforderlichen Winkel und dann in der Datenbank gespeichert.Mit XSS beiseite, was sind gängige Möglichkeiten, dies zu beheben problem.(d.h.Gibt es einen besseren Weg?)

Wenn Sie Kommentare auf XSS(cross-site scripting), ich bin sicher, das wird jemandem helfen.

War es hilfreich?

Lösung

Es gibt tatsächlich einen Weg zu drehen, dass die "Funktion" aus.Dies ermöglicht die Benutzer zu veröffentlichen-je nachdem welche Zeichen Sie wollen, und es wird keine Notwendigkeit zu konvertieren Sie Zeichen in einen alias mit Javascript.In diesem Artikel finden Sie Anforderung Validierung deaktivieren.Es bedeutet, dass Sie haben, um Ihre eigene Validierung, aber die sounds von Ihre post, es scheint, das ist, was Sie suchen zu tun sowieso.Sie können auch deaktivieren Sie Sie, pro Seite, indem Sie folgenden die Anleitung gibt es hier.

Andere Tipps

Ich denke, der sicherste Weg zu gehen, ist NICHT dem Benutzer zu ermöglichen, erstellen Sie die tags, mit Ihrem WISYWIG.Vielleicht mit so etwas wie einem markdown-editor, wie auf dieser Seite oder hier verfügbar. wäre ein anderer Ansatz.

Auch halten Sie die Page-Direktive ValidateRequest=true, die aufhören sollten-markup-Code gesendet werden, der in der Anforderung werden Sie natürlich behandeln müssen, dass dieser Fehler, wenn es kommt.Die Leute werden immer in der Lage zu injizieren-tags in der Aufforderung Weise mit firefox-Erweiterungen wie Tamper data, aber die ValidateRequest=true sollte zumindest aufhören ASP.NET aus der Annahme von Ihnen.

Eine geradlinig-post auf XSS-Angriffe war vor kurzem von Jeff hier.Es spricht auch, dass Ihre cookies HttpOnly, die ist eine semi-Abwehr cookie-Diebstahl.Viel Glück!

Mein Erster Kommentar wäre zu vermeiden, mit JavaScript zu ändern die Winkel Klammern.Umgehung dieser ist so einfach wie das deaktivieren von JavaScript im browser.Fast alle server-Seite Sprachen einige utility-Methode, wandelt einige HTML-Zeichen in Ihre Entität Kollegen.Für Beispiel, verwendet PHP htmlentities(), und ich bin mir sicher .NET hat ein ähnliches utility-Methode.In den am wenigsten, Sie können eine regex ersetzen Sie die Spitzen Klammern, Klammern und Anführungszeichen, und erhalten Sie einen langen Weg zu einer sicheren Lösung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top