Es difícil ejecutar un ataque CSRF exitoso en una aplicación usando viewstate pero no imposible. Una forma de realizar un ataque CSRF exitoso en una aplicación con _viewstate es
- Attacker puede iniciar sesión en la aplicación (usando credenciales propias o adquiridas)
- Visite la página (con los estados de variable más comunes o más útiles) contra los que desea crear un ataque CSRF para
- Copie el _Viewstate
- Inserta este _viewstate en su página de ataque
- Envía la página de ataque a la víctima
- Con un poco de suerte y buenas adivinanzas, el ataque podría funcionar
Se ha introducido una solución a esto en 1.1. En lugar de usar solo _viewstate, puede usar ViewStateUser-Key. Esto utiliza la clave de sesión de uso para crear el token de estado que será realmente difícil de adivinar o copiar por el atacante.
Todavía sugeriría implementar un mecanismo de token CSRF independiente para la protección contra CSRF en su aplicación (sé que muchos difieren en esto)