Propósito, explicación y ejemplo de ValidateAntiForgeryToken

Resuelto Tabriz Atayi asked hace 12 años • 3 respuestas

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

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

Tabriz Atayi avatar Nov 29 '12 15:11 Tabriz Atayi
Aceptado

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 ValidateAntiForgeryTokenatributo y realice una llamada @Html.AntiForgeryToken()en los formularios que publican el método.

Richard Szalay avatar Nov 29 '2012 08:11 Richard Szalay

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()
Chandra Malla avatar Nov 11 '2014 04:11 Chandra Malla