【问题标题】:jQuery ASP.NET MVC JSON call hackable?jQuery ASP.NET MVC JSON 调用可破解?
【发布时间】:2011-01-20 14:02:24
【问题描述】:

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

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

        return Json();
    }

所以我的问题是,是否可以调用/破解此方法并传递错误数据?假设这是在系统中创建一个新用户。我可以伪造对这个方法的调用吗?我应该如何使用某种防伪令牌或任何东西来保护这种方法?

【问题讨论】:

标签: jquery ajax antiforgerytoken


【解决方案1】:

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

您当然可以使用 Authorize-attribute 来保护它:

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

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

编辑:

之前的链接失效了。有关 Ajax 中的 anti-forgerytoken 的更多信息,请查看这个 SO-question:jQuery Ajax calls and the Html.AntiForgeryToken()

不过我还没有测试过。

【讨论】:

  • 对,但可以说我没有角色和这样的定义,无论如何我可以使用防伪令牌吗?
  • 没有角色,你怎么知道谁可以添加用户,谁不能?
  • 我只是举一个添加用户的例子。我无法保护它,以便我知道它是从视图中作为合法请求而来的?
  • 这里有一篇文章可能对你有所帮助:sogeti-phoenix.com/Blogs/post/2009/05/…
  • @Pbrikoff - 您发布的那些链接似乎不再有效。其中一个显示了分娩的图形描述......不是我希望找到的 AntiForgeryToken 信息。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-27
    • 2017-03-30
    • 1970-01-01
    • 2014-08-16
    • 2014-01-18
    • 2016-01-07
    相关资源
    最近更新 更多