martes, 18 de mayo de 2010

Nueva forma en Asp.Net 4 de realizar encoding de datos en paginas asp: <%: %>

Anteriormente hablamos de los ataques XSS y como es uno de los ataques mas comunes y eficientes al momento de atacar una pagina web.
Estos ataques consisten en inyectar código no deseado en una pagina web que luego puede ser ejecutado por otro usuario. Por ejemplo si entro a un foro que tenga poca seguridad, y creo un post nuevo con el siguiente codigo:



<script type="text/javascript"> alert('esto es un aviso no deseado')</script>

las personas que entren en este post les saldra un PopUp con el mensaje, a pesar que esto no fue programado por los creadores del foro.

Para solucionar esto se utiliza el Html encoding, esto es, traducir caracteres especiales de html a códigos los cuales al ser leidos por el explorador este los interpreta como texto, en lugar de interpretarlos como código html.

Por ejemplo, en lugar de escribir < script > alert(); < /script > se utilizan los códigos de los caracteres especiales: 




&lt; script &gt; alert(); &lt; &rasl; script &gt;
.  Este código sera interpretado y traducido al texto original por el explorador, en lugar de ejecutarlo como código de javascript. 


La versión de Asp Mvc para c# 3.5 incluye un helper de html que realizaba encoding de cualquier string, el cual se utiliza usualmente en las páginas Asp de la iguiente manera: 

<%= Html.Encode("string") %>



En c# 4.0 para comodidad del programador se ha introducido una nueva manera mas sencilla de realizar encoding, esto es colocando nuestro código c# entre los caracteres

<%: %>
 . Esto funciona de igual manera que 

<%= %>
 , con la diferencia que el string que retorna viene con los caracteres de encoding.







No hay comentarios:

Publicar un comentario