简单秒杀系统中的接口隐藏(安全验证)

为什么要安全验证?

对于稍微懂一些电脑的人可以通过抓包方式F12获取秒杀的接口地址,如果有些人根据此自己写了一个脚本进行抢购,如果有人根据获取到的接口写了一个抢购的脚本,那么就可以通过不在app界面点击下单按钮就可以下单了,速度比点击下单按钮快得多。所以对于一些用户来说不公平。

安全验证流程?

       用户在下单前,先发出一个生成md5hash值的请求,根据自己抢购的商品id和自己的用户Id用Md5加密算法和随机盐生成一个hash值存到redis中,在redis中设置过期时间,等用户真正下单时发起的下单请求(秒杀请求)携带着Md5的hash值和redis中已经存在的hash值作比较是否相等,就能判断此请求是根据脚本发起的请求(没有点击抢购秒杀按钮)还是用户在app下下的单了,避免一些用户的脚本抢购,如果两次md5的值相等,那么就处理下单业务,如果不相等,那么就抛弃请求。

               

controller.java

             

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值