2010-05-05 4 views
13

Ich habe irgendwo gelesen, dass ich aufhören sollte, <%= … %> zu verwenden, um zu rendern und <%: … %> zu verwenden.Warum muss ich aufhören zu verwenden <%= … %> Zum Rendern und Starten von <%: … %> in Asp.net?

Kann jemand erklären, was Unterschiede zwischen <%= … %> und <%: … %> sind, und was sind die Vorteile der Verwendung des einen oder anderen? Hier

ist die slidedeck I

http://ssmith-presentations.s3.amazonaws.com/ASPNET_TipsTricksTools_April2010.zip

Hier lese sind die Links können Sie mehr Informationen von

http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and-asp-net-mvc-2.aspx

http://haacked.com/archive/2009/11/03/html-encoding-nuggets-aspnetmvc2.aspx

+1

"Ich treffe diese asp.net Tipps" ... können Sie einen Link veröffentlichen? AFAIK <% = ist nur syntaktischer Zucker für die mehr wortreichen <% Response.Write (... – spender

+0

Ah. Verpasste den Doppelpunkt. Das ist die zweite interessante Sache, die ich heute auf SO gelernt habe! – spender

+2

Die neue <%: ... %> ist nur in ASP verfügbar .NET 4 und MVC 2, wenn ich mich erinnere – Craig

Antwort

11

bekommen Eigentlich ist es nur eine kurze Version von <% = Server.HtmlEncode (Zeichenfolge)%>

Siehe diesen Link

http://weblogs.asp.net/scottgu/archive/2010/04/06/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and-asp-net-mvc-2.aspx

Es ist besser Praxis, um JavaScript-Attacken usw. zu vermeiden, ist also, wenn jemand einen Kommentar zu Ihrem Blog zum Beispiel fügt hinzu, die in ihm einen Iframe HTML oder Javascript zu sagen haben dann Es wird genau wie eingegeben wiedergegeben und nicht mit dem JS oder Iframe tatsächlich funktioniert.

4

Grundsätzlich wird <%: HTML-Codierung das Ergebnis, während <%= nicht. Dies hilft, XSS-Angriffe zu verhindern. Sie können mehr darüber in dieser Reihe von blog posts von Phil Haack lesen.

Verwandte Themen