在MVC3安全漏洞kendoui格,我如何绕过它?(kendoui grid in mvc3 sec

2019-09-19 16:09发布

该kendoUI网格使用HTTPGET请求一个AJAX请求时更新数据。 (http://www.kendoui.c​​om/documentation/asp-net-mvc/helpers/grid/ajax-binding.aspx)服务器返回一个JSON的结果,而且,为了得到它的工作,我们需要使用下面的代码:

return Json(Result, JsonRequestBehavior.AllowGet);

,没有工作得很好,但它是一个安全漏洞(这就是为什么微软让我们把“AllowGet”在那里)。

返回JSON的安全的方法是在HttpPost,但kendoui电网不允许这样做。

我想用kendoui网格。 是否有使用HTTPGET的方式,返回JSON,并做到安全?

谢谢!

Answer 1:

如果您使用的是剑道电网的MVC包装,这将不会发生。 有网格配置,使因为这个ASP.NET MVC行为POST请求。 请确保你已经包括kendo.aspnetmvc.min.js虽然。 更多信息可以在找到的文档 。



Answer 2:

剑道数据源使用使用Ajax时默认使用GET,但它是可以通过定义传输设置后使用POST。

下面是代码的在缩短版本Telerik的剑术CRUD例如使用交。

<script>
    $(function () {
        $("#grid").kendoGrid({
            toolbar: ["create", "save", "cancel"],
            dataSource: {
                schema: {
                    model: {
                        id: "ProductID",
                        fields: {
                            ProductID: { editable: false, nullable: true },
                            ProductName: { validation: { required: true } },
                            UnitPrice: { type: "number", validation: { required: true } }
                        }
                    }
                },
                transport: {
                    create: {
                        url: "Products.svc/Create", 
                        contentType: "application/json; charset=utf-8", 
                        type: "POST" 
                    },
                    read: {
                        url: "Products.svc/Read",
                        contentType: "application/json; charset=utf-8",
                        type: "POST"
                    },
                    parameterMap: function(data, operation) {
                        if (operation != "read") {
                            return JSON.stringify({ products: data.models })
                        }
                    }
                }
            }
        });
    });
</script>


文章来源: kendoui grid in mvc3 security vulnerability, how do i get around it?