页面方法和安全性

时间:2013-07-19 19:03:27

标签: c# jquery asp.net security

最近我了解到你可以使用脚本管理器并设置EnablePageMethods =“true”这是我想做的事情,但是有任何安全隐患吗?

此外,还有更好的方法吗?

2 个答案:

答案 0 :(得分:4)

EnablePageMethods="true"真正做的就是生成一个内联JavaScript代理,允许通过ASP.NET AJAX Page Methods语法回调PageMethods

我更喜欢通过.ajax()方法使用jQuery来调用ASP.NET AJAX Page Methods,如下所示:

代码隐藏

[WebMethod]
public static string GetDate()
{
    return DateTime.Now.ToString();
}

JavaScript的:

$.ajax({
    type: "POST",
    url: "PageName.aspx/GetDate",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(msg) {
        // Do something interesting here.
    }
});

注意:由于ASP.NET AJAX Page Methods会自动将其响应序列化为JSON,因此"json"是AJAX调用的返回dataTypecontentType描述了您要发送到服务器的内容。

答案 1 :(得分:3)

与向网站添加任何普通网页或服务相比,它没有任何安全隐患。所需的预防措施是相同的 - 不首先验证它们就不要使用任何输入,不要在错误消息中无意中返回敏感信息等。

如果您不介意切换到新平台,有一种更新的方式,可以说更好:ASP.Net MVC和相关的“Web API”。 (You can use Web API with Webforms also,感谢Karl Anderson在评论中注意到。)