保护由ajax调用的Web服务

时间:2014-04-23 16:42:46

标签: asp.net ajax security iis

我已经使用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分开,如果是,我该如何保护

1 个答案:

答案 0 :(得分:0)

要求您对要保护的任何AJAX请求进行身份验证/授权。

在您的示例中,添加2个参数:提交请求的用户的LoginNamePassword 。然后在服务器上执行身份验证/授权,以确保用户有权添加新用户。如果未经授权,则返回403响应。