ASP.NET PageMethods和JQuery AJAX发布–到底有多安全?

问题描述 投票:4回答:4

我有以下情况-我真正寻找的是真正的人的真正帮助。建议/解决方案?请。

我有一个ex的Extranet网站。 www.foo.com(asp.net 3.5)我正在使用JQuery 1.3.2在default.aspx页(www.foo.com/default.aspx)]中调用ValidateLogin PageMethods

代码看起来像这样

$.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    url: "Default.aspx/ValidateLogin",
    data: '{' + arg + '}',
    success: function (data) {
        if (data.d != 0) {
            window.location = "http://www.google.com";
        } else {
            alert("Invalid UserName/Password.");
            ResetLoginForm();
        }
    },
    error: function (xhr, status, error) {
        var strerror = xhr.status + error;
        alert("Error Communicating with Server:" + strerror);
        ResetLoginForm();
    }
});

代码存储在外部js文件中。对于前default.js。

由于该网站是公共网站,所以任何人都可以下载default.js,因此可以查看上面给出的代码。

我的问题是,一旦该人获得此URL:“ Default.aspx / ValidateLogin”,他就可以向服务器发出请求,服务器将自豪地响应该请求。

我在这里有什么选择?如何验证请求?如何防止这类未经授权的请求?

我有以下情况-我真正寻找的是真正的人的真正帮助。建议/解决方案?请。我有一个ex的Extranet网站。 www.foo.com(asp.net 3.5)我正在使用...

jquery ajax security asp.net-3.5 pagemethods
4个回答
4
投票

Web请求本质上是公开的。他们甚至不需要查看源文件。他们可以只监视HTTP请求并重播这些请求(例如,使用诸如fiddler之类的工具非常容易。)

节流问题


1
投票

我假设您已经公开了Page方法加载会话,所以我想您可以在页面加载时设置一个会话变量,然后在调用page方法时检查它是否存在。这不是世界上最安全的事情,但会有所帮助。


0
投票

我会说没有问题;但是,您可能想要执行一些Rate Limiting,这样人们就无法尝试强行强制使用它。


0
投票

您也可以在输入2-3次登录失败后输入验证码,这样可以避免暴力破解。

© www.soinside.com 2019 - 2024. All rights reserved.