我已经使用asp.net webservice建立了网站,用户可以注册,登录和制作广告,但网络服务不安全的主要问题是因为我可以调用它并在google chrome的基本控制台中将参数传递给它我可以执行webmethod并添加任何我喜欢的角色的用户,而无需任何凭据代码
$.ajax(
{
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
url: '/anywebservice.asmx/AddUser',
data: JSON.stringify({
FullName: $('#txtFullName').val(),
BirthDate: "1/1/1900",
GenderId: $("input:radio[name='rblGender']:checked").val(),
CountryId: $("#ddlCountries").val(),
Email: $('#txtEmail').val(),
Mobile: $('#txtMobile').val(),
RoleName: "Users",
LoginName: $('#txtUserName').val(),
Password: $('#txtPassword').val(),
IsApproved: "true"
}),
beforeSend: function () {
//$('.tableContent').block({ message: null });
//$('.tableContent').spin(opts);
},
complete: function () {
//$('.tableContent').unblock();
//$('.tableContent').spin(false);
},
success: function (data) {
if (data.d < 0) {
CustomAlert(data.d);
}
else {
CustomAlert(window.lang.translate("You have sucssesfully registered"));
}
}
});
当然我知道我可以创建分离的webmethod,它不会将角色名称作为参数,但这个方法只是示例我有很多方法,我正在为客户端使用但我需要他们保护不像这样或我应该将admin webservice与客户端webservice分开,如果是,我该如何保护
答案 0 :(得分:0)
要求您对要保护的任何AJAX请求进行身份验证/授权。
在您的示例中,添加2个参数:提交请求的用户的LoginName
和Password
。然后在服务器上执行身份验证/授权,以确保用户有权添加新用户。如果未经授权,则返回403响应。