您的位置:首页 > 运维架构 > 网站架构

网站就这样被恶意攻击了

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

首次加载页面时先异步查询,判断用户是否已经体验过,如果用户已经体验,给用户提示信息,如果没体验,则允许用户体验。前台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前后台校验缺一可否
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: