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:
. Este código sera interpretado y traducido al texto original por el explorador, en lugar de ejecutarlo como código de javascript.< script > alert(); < &rasl; script >
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