2010-05-05 23 views
13

Leí en alguna parte que debería dejar de usar <%= … %> para procesar y comenzar a usar <%: … %>.¿Por qué debo dejar de usar <%= … %> para renderizar y comenzar a usar <%: … %> en Asp.net?

¿Alguien puede explicar las diferencias entre <%= … %> y <%: … %>, y cuáles son las ventajas de usar una u otra?

Aquí es el SlideDeck estoy leyendo

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

Aquí están los enlaces se puede obtener más información de

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

"Me encuentro con estos consejos asp.net" ... ¿puedes publicar un enlace? AFAIK <% = es simplemente azúcar sintáctico para el más detallado <% Response.Write (... – spender

+0

Ah. Perdí el colon. ¡Esa es la segunda cosa interesante que aprendí en SO hoy! – spender

+2

El nuevo <%: ... %> solo está disponible en ASP .NET 4 y MVC 2 si recuerdo. – Craig

Respuesta

11

En realidad se trata de una versión corta de <% = Server.HtmlEncode (cadena)%>

Vea este enlace

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 mejor práctica con el fin de evitar los ataques de JavaScript, etc Así que si alguien añade un comentario a tu blog, por ejemplo, que tiene un decir HTML o Javascript iframe en él, entonces se representará exactamente como se escribe y no con el JS o el iframe realmente funcionando.

4

Básicamente, <%: HTML codificará el resultado, mientras que <%= no lo hará. Esto ayuda a prevenir ataques XSS. Puede leer más sobre esto en esta serie de blog posts de Phil Haack.

Cuestiones relacionadas