Как вы должным образом гарантируете, что пользователь не вмешивается в значения запроса или значения URL-адреса действия? Например, у вас может быть действие «Удалить комментарий» на вашем CommentController, которое принимает идентификатор CommentID. URL-адрес действия может выглядеть как/Comments/Delete/3 для удаления комментария с идентификатором 3.Безопасность с значениями QueryString в Asp.net MVC
Теперь, очевидно, вы не хотите, чтобы кто-либо мог удалять комментарий 3. Обычно у владельца комментария или администратора есть разрешение на это. Я видел, что эта безопасность применялась разными способами и хотела бы знать, как некоторые из вас это делают.
Вы делаете несколько вызовов базы данных для извлечения комментария и проверяете, соответствует ли автор комментария пользователю, вызывающему действие удаления?
Передайте ли вы идентификатор CommentID и идентификатор пользователя до хранимой процедуры, который выполняет удаление, и выполните удаление, в котором UserID и CommentID равны значениям, переданным в?
Лучше ли шифровать значения строки запроса?
Тогда как вы предлагаете мне редактировать/удалять вещи тогда? Имейте в виду, что я использую Asp.net MVC – Vyrotek 2008-10-29 03:02:45
. Перед выполнением удаления вы должны отправить POSTing своим методам контроллера, чтобы вызывать удаление - и проверку учетных данных запроса (cookie/username/password/whatever). См. Сообщение @ Schotime. – 2008-12-19 00:30:11