validateantiforgerytoken validate mvc forgery foreign anti c# asp.net-mvc asp.net-mvc-4

c# - foreign - validate antiforgerytoken mvc



ValidateAntiForgeryToken propósito, explicación y ejemplo (2)

El propósito básico del atributo ValidateAntiForgeryToken es prevenir ataques de falsificación de solicitudes entre sitios.

La falsificación de solicitud entre sitios es un ataque en el que el atacante envía un elemento de script dañino o un comando o código malintencionado desde el navegador del usuario de confianza. Para obtener más información sobre la falsificación de solicitud entre sitios, visite http://www.asp.net/mvc/overview/security/xsrfcsrf-prevention-in-aspnet-mvc-and-web-pages .

Es fácil de usar, necesita decorar el método con el atributo ValidateAntiForgeryToken como se muestra a continuación:

[HttpPost] [ValidateAntiForgeryToken] public ActionResult CreateProduct(Product product) { if (ModelState.IsValid) { //your logic } return View(ModelName); }

Se deriva del espacio de nombres System.web.mvc

Y en su opinión, agregue este código para agregar el token para que se use para validar el formulario al enviarlo

@Html.AntiForgeryToken()

¿Podría explicar el propósito de ValidateAntiForgeryToken y mostrarme un ejemplo sobre ValidateAntiForgeryToken en MVC 4?

¿No pude encontrar ningún ejemplo que explique este atributo?


El soporte anti-falsificación de MVC escribe un valor único en una cookie solo de HTTP y luego se escribe el mismo valor en el formulario. Cuando se envía la página, se genera un error si el valor de la cookie no coincide con el valor del formulario.

Es importante tener en cuenta que la función evita las falsificaciones de solicitudes entre sitios . Es decir, un formulario de otro sitio que publica en su sitio en un intento de enviar contenido oculto utilizando las credenciales de un usuario autenticado. El ataque consiste en engañar al usuario que ha iniciado sesión para que envíe un formulario, o simplemente activando un formulario mediante programación cuando se carga la página.

La función no evita ningún otro tipo de falsificación de datos o ataques basados ​​en manipulación.

Para usarlo, decore el método de acción o el controlador con el atributo ValidateAntiForgeryToken y @Html.AntiForgeryToken() una llamada a @Html.AntiForgeryToken() en los formularios que se publican en el método.