JQuery ASP.NET MVC JSON вызов взломать? - PullRequest
2 голосов
/ 24 февраля 2010

У меня есть базовый метод JsonResult, который вызывается с помощью вызова jQuery $ .ajax, на мой взгляд.

    [AcceptVerbs(HttpVerbs.Post)]
    public JsonResult DoWork(string param1)
    {
        // do something important 

        return Json();
    }

Итак, мой вопрос: может ли этот метод быть вызван / взломан и передать ошибочные данные? Допустим, это было создание нового пользователя в системе. Могу ли я подделать вызов этого метода? Должен ли я каким-то образом защищать этот метод с помощью какого-либо токена Anti-Forgery или чего-то еще?

Ответы [ 2 ]

4 голосов
/ 24 февраля 2010

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

Конечно, вы можете защитить его, используя атрибут Authorize:

[Authorize(Roles='...')]

или используйте любой другой метод для идентификации и авторизации пользователя.

Edit:

Предыдущая ссылка больше не работала. Для получения дополнительной информации об анти-подделке в Ajax проверьте этот SO-вопрос: jQuery Ajax вызывает и Html.AntiForgeryToken ()

Хотя я не проверял это.

1 голос
/ 24 февраля 2010

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

...