网站就这样被恶意攻击了

来源:互联网 发布:全国通软件坑人 编辑:程序博客网 时间:2024/04/27 22:29

最近做公司的一个项目,项目中有一个模块给用户提供一个免费体验功能:每个用户只能使用一次。思路是这样的:

首次加载页面时先异步查询,判断用户是否已经体验过,如果用户已经体验,给用户提示信息,如果没体验,则允许用户体验。前台js代码如下所示:

        var isLogin = false;  //判断用户是否登陆        var isFirst = true;  //判断用户是否已经体验        $(function () {            $.ajax({                type: "get",                url: "/EveryDayFree/Index/12",                dataType: 'JSON',                success: function (result) {                    if (result["isLogin"] == 1) {                        isLogin = true;                    }                    else {                        isLogin = false;                    }                    if (result["IsFirst"] == 1) {                        isFirst = true;                    }                    else {                        isFirst = false ;                    }                }            });        })        /*免费体验*/        function startwithfundingfree(id) {            if (isLogin == false) {                layer.confirm('请先登录', function () {                    Login();                });            }            else {                if (isFirst == false) {                    layer.alert("每个用户只有一次的体验机会,您已经体验过了!");                }                else {                    window.location.href = "/EveryDayFree/WithFundingEveryDayFree/" + id;                }            }        }
如果用户按照正常的流程走,上面的代码是没有问题的。可就有那么一些人,他们就喜欢绕过你的js,通过程序post数据。起初,后台代码的设计忽略了这一点,结果就造成了一个用户一直在点击免费体验。这是坚决不允许存在的,通过为后台添加校验代码最终解决了问题。

            var memberinfo = BLL.F_MemberBLL.GetMember.GetPartialInfo(UserId);//根据用户名进行用户详细信息的查询            if (memberinfo.IsFirst == true)            {                return PromptView(Url.Action("Index", "Home"), "每个用户只有一次免费体验的机会,您已经体验过了", "Error");            }
总结:做事情需要考虑全面些,做网站更是如此。

相关文献:asp.net前后台校验缺一可否

0 0