¿Podría explicar el propósito de ValidateAntiForgeryToken y mostrarme un ejemplo sobre ValidateAntiForgeryToken
MVC 4?
¿No pude encontrar ningún ejemplo que explique este atributo?
c#
asp.net-mvc
asp.net-mvc-4
Tabriz Atayi
fuente
fuente
.BeginForm
ayudante. Así que esto está allí automáticamente, como en RailsRespuestas:
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 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 implica engañar al usuario conectado para que envíe un formulario, o simplemente desencadenar 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 controlador con el
ValidateAntiForgeryToken
atributo y realice una llamada a@Html.AntiForgeryToken()
los formularios que se publican en el método.fuente
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 malicioso o un código 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 simple de usar, necesita decorar el método con el atributo ValidateAntiForgeryToken de la siguiente manera:
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.
fuente
En ASP.Net Core, el token anti falsificación se agrega automáticamente a los formularios, por lo que no necesita agregarlo
@Html.AntiForgeryToken()
si usa el elemento de formulario de afeitar o si usa IHtmlHelper.BeginForm y si el método del formulario no es GET.Generará un elemento de entrada para su formulario similar a este:
<input name="__RequestVerificationToken" type="hidden" value="CfDJ8HSQ_cdnkvBPo-jales205VCq9ISkg9BilG0VXAiNm3Fl5Lyu_JGpQDA4_CLNvty28w43AL8zjeR86fNALdsR3queTfAogif9ut-Zd-fwo8SAYuT0wmZ5eZUYClvpLfYm4LLIVy6VllbD54UxJ8W6FA">
Y cuando el usuario envía el formulario, este token se verifica en el lado del servidor si la validación está habilitada.
[ValidateAntiForgeryToken]
El atributo se puede utilizar contra acciones. Las solicitudes realizadas a acciones que tienen este filtro aplicado se bloquean a menos que la solicitud incluya un token antiforgery válido.[AutoValidateAntiforgeryToken]
El atributo se puede utilizar contra los controladores. Este atributo funciona de manera idéntica al atributo ValidateAntiForgeryToken, excepto que no requiere tokens para las solicitudes realizadas utilizando los siguientes métodos HTTP:GET HEAD OPTIONS TRACE
Información adicional: https://docs.microsoft.com/pl-pl/aspnet/core/security/anti-request-forgery
fuente
Microsoft nos proporciona una funcionalidad incorporada que utilizamos en nuestra aplicación con fines de seguridad, para que nadie pueda piratear nuestro sitio o invadir alguna información crítica.
Desde el propósito de validarAntiForgeryToken en la aplicación MVC de Harpreet Singh:
fuente