Propósito, explicación y ejemplo de ValidateAntiForgeryToken
¿Podría explicar el propósito de ValidateAntiForgeryToken y mostrarme un ejemplo ValidateAntiForgeryToken
en MVC 4?
¿No pude encontrar ningún ejemplo que explique este atributo?
El soporte antifalsificación de MVC escribe un valor único en una cookie solo 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 falsificaciones de solicitudes entre sitios . Es decir, un formulario de otro sitio que se publica en su sitio en un intento de enviar contenido oculto utilizando las credenciales de un usuario autenticado. El ataque implica engañar al usuario que ha iniciado sesión para que envíe un formulario o simplemente activar mediante programación un formulario cuando se carga la página.
La característica no previene 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 ValidateAntiForgeryToken
atributo y realice una llamada @Html.AntiForgeryToken()
en los formularios que publican el método.
El propósito básico del atributo ValidateAntiForgeryToken es evitar ataques de falsificación de solicitudes entre sitios.
Una falsificación de solicitud entre sitios es un ataque en el que se envía un elemento de script dañino, un comando o un código malicioso desde el navegador de un usuario confiable. Para obtener más información sobre esto, 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 de modo que se utilice para validar el formulario al enviarlo.
@Html.AntiForgeryToken()