我有一个基本的JsonResult方法,在我的视图中由jQuery $ .ajax调用调用。
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult DoWork(string param1)
{
// do something important
return Json();
}
所以我的问题是,这个方法可以被调用/黑客攻击并传递错误的数据吗?假设是在系统中创建一个新用户。我可以假装打电话给这个方法吗?我应该如何使用某种防伪令牌或任何东西来保护这种方法?
答案 0 :(得分:4)
是的,你应该保护它。任何人都可以调用此方法,并传递他们想要的任何值。您应始终不信任您收到的数据。
您可以使用Authorize属性保护它:
[Authorize(Roles='...')]
或使用任何其他方法来识别和授权用户。
修改强>
以前的链接不再有效了。有关Ajax中的anti-forgerytoken的更多信息,请查看此SO问题:jQuery Ajax calls and the Html.AntiForgeryToken()
我没有测试过这个。
答案 1 :(得分:1)
是。可以像调用任何其他公共控制器操作一样调用此方法。