Wie vermeiden Sie XSS-Schwachstellen in ASP.Net (MVC)?
Ich vor kurzem bemerkt, dass ich hatte ein großes Loch in meine Bewerbung, denn ich hatte etwas getan, wie:
<input type="text" value="<%= value%>" />
Ich weiß, dass ich hätte Html.Encode
aber gibt es eine Möglichkeit zu tun, dass für alle Werte, die zimmerreserviereung, ohne das es explizit tun?
InformationsquelleAutor der Frage tghw | 2010-07-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es ein paar Möglichkeiten:
<%: %>
syntax in ASP.NET MVC2 /.NET 4.0. (Das ist nur syntaktischer Zucker fürHtml.Encode()
)InformationsquelleAutor der Antwort George Stocker
Sehen Sie diese video von Scott Hanselman und Phil Haack. Sie decken XSS -, CSRF -, JSON-Hijacking-speziell mit ASP.Net MVC.
InformationsquelleAutor der Antwort BradB
In ASP.Net 4.0 oder höher, verwenden Sie immer <%: ... %> statt <%= ... %> ... es ist die HTML-Codierung für Sie.
Scott Gu ' s Erklärung.
Nachdem dies getan war, es ist relativ einfach zu grep code für <%= regelmäßig als Sicherheitsmaßnahme.
Außerdem sind Sie mit der Microsoft Anti-XSS library?
InformationsquelleAutor der Antwort Joel Spolsky
Syntax für HTML-Codierung
<%: Modell.etwas %> syntax in WebForms
Es ist automatisch in Razor also @Modell.etwas wird automatisch codieren automatisch ohne
müssen alles tun, um es zu encodieren.
MVC3-HTML-Helper-Methoden zurück, die codierte Zeichenfolge automatisch. z.B. Html.Label zurückkehren wird der codierte string
Mehr über cross-site-scripting
http://thirum.wordpress.com/2013/10/24/how-asp-net-mvc-prevents-cross-site-scriptingxss-attack/
InformationsquelleAutor der Antwort user1094140
Potenziell Gefährliche HTML-Tags:
Zwar nicht eine vollständige Liste, die die folgenden Häufig verwendeten HTML-tags könnte es einem böswilligen Benutzer ermöglichen, zu injizieren script-code:
Angreifer verwenden können HTML-Attribute wie src, lowsrc, Stil, und href in Verbindung mit dem vorhergehenden tags einschleusen, cross-site-scripting. Zum Beispiel, das src-Attribut des Tags kann eine Quelle der Injektion, wie in den folgenden Beispielen gezeigt.
Kann ein Angreifer auch mit dem tag zu injizieren, ein Skript durch ändern der MIME-Typ, wie im folgenden gezeigt.
InformationsquelleAutor der Antwort Peter Selth