我有以下情况-我真正寻找的是真正的人的真正帮助。建议/解决方案?请。
我有一个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)我正在使用...
Web请求本质上是公开的。他们甚至不需要查看源文件。他们可以只监视HTTP请求并重播这些请求(例如,使用诸如fiddler之类的工具非常容易。)
我假设您已经公开了Page方法加载会话,所以我想您可以在页面加载时设置一个会话变量,然后在调用page方法时检查它是否存在。这不是世界上最安全的事情,但会有所帮助。
我会说没有问题;但是,您可能想要执行一些Rate Limiting,这样人们就无法尝试强行强制使用它。
您也可以在输入2-3次登录失败后输入验证码,这样可以避免暴力破解。