MVC. NET как обезопасить отправку форм после редактирования - PullRequest
1 голос
/ 14 марта 2020

Когда я хочу отправить форму для сохранения отредактированной записи, я должен передать ее идентификатор контроллеру. Затем клиент (или злоумышленник) может изменить некоторую информацию (например, этот идентификатор) в форме, которую я не хочу менять. Я могу создать хэшированное скрытое поле, чтобы проверить, что поля только для чтения не были изменены, и проверить его при публикации в контроллере. Есть ли другие хорошие практики для этой проблемы?

Спасибо

Ответы [ 2 ]

1 голос
/ 14 марта 2020

Вы можете кодировать данные, которые вы хотите защитить, с помощью алгоритма на стороне сервера, таким образом, что представление получает только закодированные данные. Когда пользователь передает форму контроллеру, вы декодируете данные и проверяете их правильность. Также не забудьте реализовать не только проверку на стороне клиента, но и проверку на стороне сервера для вашей модели.

1 голос
/ 14 марта 2020

AntiForgeryToken: Отличная особенность ASP. NET MVC - это AntiForgeryToken. Создает скрытое поле формы (маркер защиты от подделки), которое проверяется при отправке формы. Маркер защиты от подделки можно использовать для защиты вашего приложения от подделки межсайтовых запросов

.cs html Код

@using (Html.BeginForm("Index", "Home"))
{
    @Html.AntiForgeryToken()
}

Контроллер Код

[ValidateAntiForgeryToken()]
[HttpPost]
public ActionResult Index()
{
    //Your Code
    return View();
}
...