Какая польза от @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() в приложении, чтобы предотвратить хакеров.