[ASP.NET] Encriptando el ViewState

Posted on Actualizado enn


Como ya todos sabrán, cuando hablamos del desarrollo de aplicaciones Web con ASP.NET Web Forms, un tema clave es el ViewState, el ViewState permite mantener el estado de una página, controles cuando se realiza un postback, por ejemplo, si tu seleccionas un ítem en una lista (dropdownlist en este caso) y enviar tu página al servidor por alguna razón, a menos que programáticamente se cambie el ítem seleccionado cuando se vuelva a cargar la página la selección que se hizo no se pierde, y esto es gracias al ViewState.

Ahora, el ViewState se almacena en un campo oculto en cada página, y ese valor es validado por el servidor cuando la página en enviada, si quieren ver el ViewState de x página entonces en el explorador seleccionar ver código fuente, y allí buscamos el control con id=’_ViewState’, por ejemplo:

 1: <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTY4ODMwNDIxNWRkT+WM3DOwh5uijZZHqblfLffgUC4in6ObYJk+MWBASQ0=" />

Como se ve, el valor del ViewState no es entendible, pero no porque este encriptado, es porque por defecto es almacenado con un encoding en base64, el cual es muy sencillo de leer, una aplicación que pueden usar y la que siempre he usado es ViewStateDecoder, la cual lee el valor y permite ahora si ver de manera claro los datos.

Ahora, cuando la seguridad es nuestra aplicación es un tema fundamental, es posible encriptar el valor del ViewState, y es posible realizarlo a nivel de todo nuestro sitio o en una página específica, para hacerlo a nivel de página simplemente en la directiva de la página colocamos el atributo ViewStateEncryptionMode=”Always” y si fuera a nivel de sitio, se debe especificar en el archivo de configuración <pages viewStateEncryptionMode=”Always”></pages> dentro del nodo System.Web.

Una consideración muy importante que se debe tener presente es que cuando se encripta el ViewState, la página tardará más tiempo en cargar,  así que debe usarse con precaución… además les recomiendo le den una mirada a temas de optimización, ya que algunas veces podemos tener un ViewState increíblemente grande, lo cual va a causar una disminución en el rendimiento de la aplicación.

Espero les sea interesante el post, hasta la próxima.

About these ads

Un comentario en “[ASP.NET] Encriptando el ViewState

    Resumen Post 2012 « Todo en ASP.NET escribió:
    12/19/2012 en 22:04

    [...] [ASP.NET] Encriptando el ViewState [...]

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s