Не могли бы вы объяснить цель ValidateAntiForgeryToken и показать пример ValidateAntiForgeryToken
в MVC 4?
Я не мог найти примеры, которые объясняют этот атрибут?
c#
asp.net-mvc
asp.net-mvc-4
Тебриз Атайи
источник
источник
.BeginForm
помощника. Так что это происходит автоматически, как в RailsОтветы:
Поддержка защиты от подделки MVC записывает уникальное значение в файл cookie только для HTTP, а затем то же значение записывается в форму. Когда страница отправляется, возникает ошибка, если значение cookie не соответствует значению формы.
Важно отметить, что эта функция предотвращает подделку межсайтовых запросов . Это форма с другого сайта, которая публикует информацию на вашем сайте, пытаясь отправить скрытый контент, используя учетные данные аутентифицированного пользователя. Атака заключается в том, чтобы заставить зарегистрированного пользователя отправить форму или просто программно вызвать форму при загрузке страницы.
Эта функция не предотвращает любые другие типы подделки данных или атаки, основанные на фальсификации.
Чтобы использовать его, украсьте метод действия или контроллер
ValidateAntiForgeryToken
атрибутом и вызовите его@Html.AntiForgeryToken()
в формах, публикуемых в методе.источник
Основное назначение атрибута ValidateAntiForgeryToken - предотвратить атаки подделки межсайтовых запросов.
Подделка межсайтовых запросов - это атака, при которой вредоносный элемент сценария, вредоносная команда или код отправляются из браузера доверенного пользователя. Для получения дополнительной информации об этом, пожалуйста, посетите http://www.asp.net/mvc/overview/security/xsrfcsrf-prevention-in-aspnet-mvc-and-web-pages .
Он прост в использовании, вам нужно украсить метод с помощью атрибута ValidateAntiForgeryToken, как показано ниже:
Он получен из пространства имен System.Web.Mvc.
И по вашему мнению, добавьте этот код, чтобы добавить токен, чтобы он использовался для проверки формы при отправке.
источник
В ASP.Net Core токен защиты от подделки автоматически добавляется в формы, поэтому вам не нужно добавлять его,
@Html.AntiForgeryToken()
если вы используете бритвенный элемент формы или IHtmlHelper.BeginForm и если метод формы не GET.Он сгенерирует элемент ввода для вашей формы, подобный следующему:
<input name="__RequestVerificationToken" type="hidden" value="CfDJ8HSQ_cdnkvBPo-jales205VCq9ISkg9BilG0VXAiNm3Fl5Lyu_JGpQDA4_CLNvty28w43AL8zjeR86fNALdsR3queTfAogif9ut-Zd-fwo8SAYuT0wmZ5eZUYClvpLfYm4LLIVy6VllbD54UxJ8W6FA">
И когда пользователь отправляет форму, этот токен проверяется на стороне сервера, если проверка включена.
[ValidateAntiForgeryToken]
Атрибут может быть использован против действий. Запросы к действиям, к которым применен этот фильтр, блокируются, если в запросе не указан допустимый токен защиты от подделки.[AutoValidateAntiforgeryToken]
Атрибут может быть использован против контроллеров. Этот атрибут работает идентично атрибуту ValidateAntiForgeryToken, за исключением того, что он не требует токенов для запросов, выполненных с использованием следующих методов HTTP:GET HEAD OPTIONS TRACE
Дополнительная информация: https://docs.microsoft.com/pl-pl/aspnet/core/security/anti-request-forgery
источник
Microsoft предоставляет нам встроенные функции, которые мы используем в нашем приложении в целях безопасности, поэтому никто не может взломать наш сайт или проникнуть в какую-либо важную информацию.
От цели ValidateAntiForgeryToken в приложении MVC Харприта Сингха:
источник