Почему нам нужно использовать @Html.AntiForgeryToken()
?
Я искал, но я не получил удовлетворительного ответа.
Какая польза от @Html.AntiForgeryToken()?
Ответ 1
Это функция безопасности, которая помогает защитить ваше приложение от подделки подпроса.
Пример:
Предположим, что у вас есть функция регистрации в вашем веб-приложении. У вас есть AccountController (somename.com/account/register), где вы ожидаете, что люди отправят свою информацию. Обычно перед тем, как кто-то отправляет регистрационную информацию, необходимо посетить фактический (somename.com/account/register), чем отправить форму.
Скажем, я плохой парень, и я хочу наводнить ваш сервер информацией о нежелательной информации, все, что мне нужно сделать, - просто оставлять сообщения прямо на (somename.com/account/register) без посещения вашего сайта. Поэтому, чтобы остановить меня, вы реализуете AntiForgeryToken, чтобы вы могли убедиться, что я посетил страницу, прежде чем я обрушился на регистрационную информацию.
Другой пример: (http://www.binaryintellect.net/articles/20e546b4-3ae9-416b-878e-5b12434fe7a6.aspx)
Ответ 2
Это необходимо для предотвращения подделки межсайтовых запросов в вашем приложении MVC. Это входит в Топ-10 OWASP и имеет жизненно важное значение с точки зрения веб-безопасности. Использование метода @Html.AntiforgeryToken() будет генерировать токен для каждого запроса, поэтому никто не сможет подделать сообщение формы.
Ответ 3
Какая польза от @Html.AntiForgeryToken()
?
Live - сценарий:
Предположим, вы вошли на свой банковский счет и собираетесь перевести деньги своему другу. Хакер знает, что вы вошли в систему, а также знает URL отправки денежного перевода. Неожиданно вы получаете письмо и проверяете его. Вы видите изображение и по ошибке нажимаете на него. Затем, через минуту или около того, вы получите другое сообщение о том, что некоторая сумма была списана с вашего счета. На самом деле это изображение было отправлено хакером, а за этим изображением был отправлен URL по вашему щелчку.
Так что мы используем AntiForgeryToken()
в приложении, чтобы предотвратить хакеров.