如果我们已经有了[HttpPost],为什么还需要使用JsonRequestBehavior ?

本文关键字:为什么 JsonRequestBehavior 我们 HttpPost 如果 | 更新日期: 2023-09-27 17:54:21

. NET MVC我们可以选择使用HTTPGET/HTTPPost来保护我们的控制器的动作。对于Json请求,有一个额外的选项给JsonRequestBehavior的安全性。

其中JsonRequestBehavior有两个选项:

public enum JsonRequestBehavior
    {
        AllowGet = 0,
        DenyGet = 1,
    }

我的问题是,如果我们可以使用HttpPost,为什么会有JsonRequestBehavior.DenyGet ?

如果我们已经有了[HttpPost],为什么还需要使用JsonRequestBehavior ?

DenyGet是MVC设置的默认设置,用于保护您免受使用HTTP GET返回数据的特定JSON请求攻击。

您需要手动决定添加AllowGet,这迫使您考虑通过HTTP GET方法公开的数据。

关于详细的解释,你可以阅读这个(有点过时的)帖子:http://haacked.com/archive/2009/06/25/json-hijacking.aspx/