Может ли пользователь или хакер вызвать метод действия POST, используя некоторые инструменты вне приложения? - PullRequest
0 голосов
/ 26 января 2012

Я читал о примере на веб-сайте Microsoft о том, как показать или скрыть ссылку «Зарегистрировать» для объекта, зависит от того, зарегистрирован текущий пользователь или нет. Они добавляют следующий код в представление для отображения ссылки «Регистрация», только если текущий пользователь еще не зарегистрирован: -

<div id=”rsvpmsg”>
<% if (Request.IsAuthenticated) { %>
<% if (Model.IsUserRegistered(Context.User.Identity.Name)) { %>
<p>You are registered for this event!</p>
<% } else { %>
<%: Ajax.ActionLink( “RSVP for this event”,
“Register”, “RSVP”,
new { id=Model.DinnerID },
new AjaxOptions { UpdateTargetId=”rsvpmsg” }) %>

затем в методе действия регистрации они также выполняют ту же проверку, чтобы проверить, зарегистрирован ли пользователь или нет, как указано ниже: -

    [Authorize, HttpPost]
    public ActionResult Register(int id) {
    Dinner dinner = dinnerRepository.GetDinner(id);
    if (!dinner.IsUserRegistered(User.Identity.Name)) {
    RSVP rsvp = new 

RSVP();
// .....

Поэтому мой вопрос заключается в том, почему они снова выполняют ту же проверку метода Post action ,,, есть ли у пользователя возможность вызвать метод действия POST register, кроме нажатия на ссылку Register, которая не будет отображается, если пользователь уже зарегистрирован? ... так почему бы не рассмотреть

 if (!dinner.IsUserRegistered(User.Identity.Name)) 

проверить метод действия как ненужный? BR

Ответы [ 2 ]

5 голосов
/ 26 января 2012

Да, это определенно возможно и очень просто.

3 голосов
/ 26 января 2012

Да, я использовал это для тестирования.Например, Fiddler (http://fiddler2.com/fiddler2/) позволит вам создавать / редактировать запросы, а затем отправлять и просматривать их

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