Cuando utilizar @Html.AntiForgeryToken()
Cuando hacemos formularios webs nos podemos encontrar con que nos hagan el temido ataque CSRF (Cross-Site Request Forgery) o lo que es lo mismo falsificación de peticiones entre sitios. Basicamente se trata de atacar un url que pueda estar parametrizada directamente sin pasar por una autentificación o por un formulario de validación. Así imagínate si alguien tiene acceso a la url de eliminar los items de tu aplicación y pueda lanzar peticiones a ella sin control. ¿Peligroso no?
MVC utiliza un filtro que se llama AntiForgeryToken el cual irá en el formulario a modo de incluir un token que se validará en el controlador cuando se haga el submit.
Ejemplo en la vista:
<form method="post" action="/controlX/accionA"> ... @Html.AntiForgeryToken() ... </form> |
Acción que recibe los datos y lo valida con ValidateAntiForengyToken:
[ValidateAntiForengyToken] public AntionResult accionA(controlX c) { //.... } |