2009-08-22 8 views
3

In einer Asp.net Mvc-Anwendung ist alle String-Ausgabe standardmäßig unescaped entweder Sie erinnern sich, alles mit HTTPUtility zu entkommen oder Sie öffnen sich selbst für XSS-Angriffe.Auto Escaping Asp.Net MVC

Jetzt bin ich ein vergesslicher Typ, also suche ich nach einer Lösung, die mir hilft, "nicht zu vergessen", all meinen Strings für mich zu entkommen.

Kann jemand alle Techniken teilen, die sie benutzt haben, um das Entkommen aller Asp.net MVC-Ausgaben zu erleichtern?

Antwort

2

jfar, was Sie wollen, ist absolut möglich, finden Sie in diesem hervorragenden Blogeintrag:

http://blog.codeville.net/2007/12/19/aspnet-mvc-prevent-xss-with-automatic-html-encoding/

Steve Sanderson erklärt Schritt-für-Schritt, wie "<% ändern = .... > "Verhalten, überschreiben GenerateCodeFromStatement() -Methode von CSharpCodeProvider-Klasse, das ist eine coole Sache. räumt eine Menge von HttpUtility.HtmlEncode auf und funktioniert ziemlich gut mit asp.net mvc.

+0

Von dem, was ich gelesen habe, scheint dies die beste Option, bis ASP.NET 4.0 mit der neuen <%: x %> Syntax herauskommt. Siehe diesen Link: http://haacked.com/archive/2009/09/25/html-encoding-code-nuggets.aspx –

0

Ich denke, Sie werden feststellen, dass viele Dinge nicht in MVC "integriert" sind, denn das ist einer der Grundwerte: Es ist flexibel genug, um Ihnen viel Kontrolle zu geben Es erwartet, dass Sie selbst einige Dinge tun.

Überprüfen Sie jedoch MVCContrib, speziell FluentHtml; Ich glaube, dass es standardmäßig für Sie kodiert.