jQuery ASP.NET MVC JSON调用hackable?

时间:2010-02-24 15:10:59

标签: jquery ajax antiforgerytoken

我有一个基本的JsonResult方法,在我的视图中由jQuery $ .ajax调用调用。

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

        return Json();
    }

所以我的问题是,这个方法可以被调用/黑客攻击并传递错误的数据吗?假设是在系统中创建一个新用户。我可以假装打电话给这个方法吗?我应该如何使用某种防伪令牌或任何东西来保护这种方法?

2 个答案:

答案 0 :(得分:4)

是的,你应该保护它。任何人都可以调用此方法,并传递他们想要的任何值。您应始终不信任您收到的数据。

您可以使用Authorize属性保护它:

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

或使用任何其他方法来识别和授权用户。

修改

以前的链接不再有效了。有关Ajax中的anti-forgerytoken的更多信息,请查看此SO问题:jQuery Ajax calls and the Html.AntiForgeryToken()

我没有测试过这个。

答案 1 :(得分:1)

是。可以像调用任何其他公共控制器操作一样调用此方法。