Você poderia explicar a finalidade do ValidateAntiForgeryToken e me mostrar um exemplo sobre o ValidateAntiForgeryToken
MVC 4?
Não encontrei nenhum exemplo que explique esse atributo?
c#
asp.net-mvc
asp.net-mvc-4
Tabriz Atayi
fonte
fonte
.BeginForm
ajudante. Então, essa coisa está lá automaticamente, como no RailsRespostas:
O suporte antifalsificação do MVC grava um valor exclusivo em um cookie somente HTTP e, em seguida, o mesmo valor é gravado no formulário. Quando a página é enviada, um erro é gerado se o valor do cookie não corresponder ao valor do formulário.
É importante observar que o recurso evita falsificações de solicitação entre sites . Ou seja, um formulário de outro site que é postado no seu site na tentativa de enviar conteúdo oculto usando as credenciais de um usuário autenticado. O ataque envolve enganar o usuário conectado para enviar um formulário ou simplesmente acionar programaticamente um formulário quando a página é carregada.
O recurso não impede qualquer outro tipo de falsificação de dados ou ataques baseados em adulteração.
Para usá-lo, decore o método de ação ou o controlador com o
ValidateAntiForgeryToken
atributo e faça uma chamada@Html.AntiForgeryToken()
nos formulários lançados no método.fonte
O objetivo básico do atributo ValidateAntiForgeryToken é impedir ataques de falsificação de solicitação entre sites.
Uma falsificação de solicitação entre sites é um ataque no qual um elemento de script prejudicial, comando malicioso ou código é enviado do navegador de um usuário confiável. Para obter mais informações, visite http://www.asp.net/mvc/overview/security/xsrfcsrf-prevention-in-aspnet-mvc-and-web-pages .
É simples de usar, você precisa decorar o método com o atributo ValidateAntiForgeryToken como abaixo:
É derivado do espaço para nome System.Web.Mvc.
E, na sua opinião, adicione esse código para adicionar o token, para que ele seja usado para validar o formulário após o envio.
fonte
No token anti-falsificação do ASP.Net Core é automaticamente adicionado aos formulários, portanto, não é necessário adicionar
@Html.AntiForgeryToken()
se você usa o elemento de formulário naval ou se usa IHtmlHelper.BeginForm e se o método do formulário não é GET.Ele irá gerar um elemento de entrada para seu formulário semelhante a este:
<input name="__RequestVerificationToken" type="hidden" value="CfDJ8HSQ_cdnkvBPo-jales205VCq9ISkg9BilG0VXAiNm3Fl5Lyu_JGpQDA4_CLNvty28w43AL8zjeR86fNALdsR3queTfAogif9ut-Zd-fwo8SAYuT0wmZ5eZUYClvpLfYm4LLIVy6VllbD54UxJ8W6FA">
E quando o usuário envia o formulário, esse token é verificado no servidor, se a validação estiver ativada.
[ValidateAntiForgeryToken]
O atributo pode ser usado contra ações. As solicitações feitas às ações que têm esse filtro aplicado são bloqueadas, a menos que a solicitação inclua um token antiforgery válido.[AutoValidateAntiforgeryToken]
O atributo pode ser usado nos controladores. Este atributo funciona de forma idêntica ao atributo ValidateAntiForgeryToken, exceto que não requer tokens para solicitações feitas usando os seguintes métodos HTTP:GET HEAD OPTIONS TRACE
Informações adicionais: https://docs.microsoft.com/pl-pl/aspnet/core/security/anti-request-forgery
fonte
A Microsoft nos fornece funcionalidades internas que usamos em nosso aplicativo para fins de segurança, para que ninguém possa invadir nosso site ou invadir algumas informações críticas.
Do objetivo do ValidateAntiForgeryToken no aplicativo MVC por Harpreet Singh:
fonte