Laden...

MVC: Html-Code per AJAX zur Anwendung schicken - Gefährlicher Request

Erstellt von Yheeky vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.139 Views
Y
Yheeky Themenstarter:in
200 Beiträge seit 2008
vor 12 Jahren
MVC: Html-Code per AJAX zur Anwendung schicken - Gefährlicher Request

Hi,

ich arbeite an einer Anwendung basierend auf dem MVC.
Ich habe bereits viele AJAX Aufrufe über jQuery realisiert. Nun stoße ich auf ein Problem:
Ich möchte dem Benutzer ermöglichen HTML-Code in der Datenbank abzulegen. Korrekterweise schlägt die Anwendung Alarm (was ja gut ist). Nun möchte ich diesen jedoch deaktivieren und die Validierung selbst vornehmen. Ein ValidateRequest="false" in der Page-Anweisung bringt leider nichts.
Desweiteren bringt es auch nichts, den eigentlichen Textstring in ein Objekt zu stecken und das per AJAX zu übertragen...wird trotzdem anerkannt (was auch gut ist an sich 😉).
Gibt´s eine Möglichkeit, wie ich den String relativ einfach übertragen kann?

Danke schonmal für die Hilfe!

Gruß Yheeky

16.834 Beiträge seit 2008
vor 12 Jahren

Hi,

mögliche Lösungen gibt es in [gelöst] asp.net MVC Inline code wird als XSS-Attacke erkannt
Generell solltest Du lieber die HTML-Attribute entsprechend durch eigene Implementierungen, zB BB-Code ersetzen.
Dies ermöglicht auch das Filtern von ungewollten HTML-Konstellationen.

Gruß

S
417 Beiträge seit 2008
vor 12 Jahren

Hallo,

der Request wird in Asp.net 4 schon vorher gefiltert, bevor er das ValidateInput erreicht.
Du musst in der web.config unter <system.web> einfach folgendes setzen:


<httpRuntime requestValidationMode="2.0"/>

Siehe auch: http://stackoverflow.com/questions/1461330/validateinput-attribute-doesnt-seem-to-work-in-asp-net-mvc

Y
Yheeky Themenstarter:in
200 Beiträge seit 2008
vor 12 Jahren

Hi Abt,

danke für die Links!
Nun funktioniert es. Es reicht doch eigentlich aus, wenn ich bei der Validierung "<script>" und "<link>" elemente nicht zulasse oder? Ansonsten kann man ja nicht wirklich viel mit machen, oder täusche ich mich?

Danke nochmal und Gruß,
Yheeky

16.834 Beiträge seit 2008
vor 12 Jahren

Ich würd generell nur das zulassen, was ich auch wirklich zulassen will - und nicht einzelne Elemente ausschließen in der Hoffnung es gibt nichts anderes.
Spontan fallen mir da nämlich noch frame, iframe, canvas, media... ein...

XSS (Cross Site Scripting) Prevention Cheat Sheet sollte Dir zeigen, wieso man Deiner genannten Variante nicht trauen sollte.