Proteger el ViewState

Necesidad

Se requiere proteger el ViewState en ASP.NET.

Contexto

A continuación se describen las circunstancias bajo las cuales la siguiente solución tiene sentido:

  1. La aplicación esta construida en ASP.NET version 1.1 , 2.0 , superior.

Solución

Un mecanismo ampliamente utilizado en ASP.NET para intercambiar información en el lado del cliente es el ViewState. Consiste en un campo oculto de las aplicaciones web que contiene información acerca del estado general de la página. Esta información, a diferencia de las cookies no es accesible desde todas las páginas del sitio web. Además en ASP.NET el ViewState es utilizado para mejorar el rendimiento del servidor, permitiéndole preservar elementos en la interfaz de usuario sin necesidad de realizar multiples peticiones al servidor.

Los desarrolladores normalmente utilizan el ViewState para almacenar información entre peticiones sucesivas, evitando así sobrecargar el servidor. Esta información permite conservar datos del usuario en el lado del cliente, y tiene un gran número de usos. Por ejemplo, permitir que una vez enviado un formulario, el usuario sea capaz de regresar y modificar algún valor, sin necesidad de llenar el formulario desde el principio. Sin embargo si un ViewState no es adecuadamente protegido puede revelar información técnica a un usuario malicioso. Incluso puede ser modificado por un atacante, para probar si se genera algún comportamiento inesperado en la validación del servidor.

Para proteger el ViewState en ASP.NET se deben tener en cuentas las siguientes consideraciones:

  1. Cifrar el ViewState desde el archivo de configuración. Asignar el valor Always al atributo viewStateEncryptionMode del elemento pages. Este se encuentra en el archivo de configuración de la aplicación web.config [2].

    web.config
    <page
       viewStateEncryptionMode=”Always”
    />
  2. Cifrar el ViewState desde la página. Para ello, asigne el valor Always al atributo viewStateEncryptionMode en la directiva @Page.

  3. Habilitar la ejecución MAC para el ViewState. Es necesario especificarle a ASP.NET que ejecute un código de autenticación de mensajes (MAC) para el ViewState de la página cuando el cliente lo devuelve. Para realizar esto, se debe asignar el valor true al atributo enableViewStateMac del elemento pages, contenido en el archivo de configuración de la aplicación web.config.

Copyright © 2020 Fluid Attacks, We hack your software. All rights reserved.

Service status - Terms of Use - Privacy Policy - Cookie Policy