Безопасность событий ASP.NET Web Forms - PullRequest
0 голосов
/ 08 июля 2011

Допустим, у меня есть кнопка (назовите ее btnDeleteUser), которая вызывает событие на стороне сервера для удаления пользователя (назовем ее DeleteUser()).Скажем, я установил btnDeleteUser.Visible = true на эту кнопку, только если пользователь является администратором, а false по умолчанию.Насколько я понимаю, свойство .Visible вообще не дает пользователю визуализировать кнопку.Может ли хакер все еще запустить событие DeleteUser(), возможно, путем подмены данных POST?Или .NET поймает это как-то?

Я думаю, что здесь лучше всего проверять учетные данные пользователя на DeleteUser(), прежде чем что-то делать, но мне интересно, если это вообще возможно в первую очередь...

Я использую веб-формы ASP.NET 4.0 (не MVC).

1 Ответ

2 голосов
/ 08 июля 2011

Да, это можно подделать, но Event Validation (при условии, что вы используете WebForms, а не MVC) должен его поймать.

Однако, если вы делаете что-то на стороне клиента, например, добавляете опции в список, а затем выбираете его, то при проверке событий произойдет ошибка, потому что список не имеет своего исходного содержимого, поэтому люди в конечном итоге отключают его, чтобы живет проще.

Даже если вы оставили проверку событий включенной, у вас должна быть стратегия глубокой защиты и проверка роли независимо от этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...