java秒杀实验报告_java初探(1)之秒杀的安全

在秒杀的场景中还存在着很多的安全问题

暴露秒杀地址

秒杀请求可以很频繁

接口流量大,恶意刷接口

隐藏秒杀接口

为什么需要隐藏,事实上,页面上的所有东西都能被客户端拿到,包括js代码,因此,分析商品详情页面就可以知道秒杀的地址所在,如果提前知道秒杀地址,就可以使用提前设置一些代码去刷这个请求接口,造成安全问题。因此需要在点击秒杀按钮的那一刻才知道秒杀地址。这样就没办法提前准备。

因此,在秒杀按钮上,绑定获取秒杀接口的方法,然后通过ajax请求,请求服务器返回一个随机的秒杀地址。

functiongetMiaoshaPath() {

g_showLoading();//ajax请求

$.ajax({

url:"/miaosha/path",

type:"GET",

data:{

goodsId:$("#goodsId").val()

},

success:function(data){if(data.code == 0){var path =data.data;

doMiaosha(path);

}else{

layer.msg(data.msg);

}

},

error:function(){

layer.msg("客户端请求有误");

}

});

}

返回地址成功,则调用doMiaosha函数,然后请求ajax,url为带有服务器返回的随机秒杀地址的值,这样,秒杀地址就实现了隐藏。

functiondoMiaosha(path) {

$.ajax({

url:"/miaosha/"+path+"/do_miaosha",

type:"POST",

data:{

goodsId:$("#goodsId").val(),

},

success:function(data){if(data.code == 0){//window.location.href="/order_detail.htm?orderId="+data.data.id;

//code为0,说明秒杀请求已经入队,那么需要客户端发起对服务器的ajax请求,进行轮询。

getMiaoshaResult($("#goodsId").val());//这里将逻辑写成函数

}else{

layer.msg(data.msg);

}

},

error:function(){

layer.msg("客户端请求有误");

}

});

}

添加图片验证功能

在页面添加图片验证码之后,需要验证码输入正确,才能执行秒杀,因此,可以有效的防止机器刷接口,而且减低接口的请求并发量。

立即秒杀

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值