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
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ß
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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
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
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.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code