php同时抢购 代码,PHP秒杀抢购问答题解决方案

拒绝黄牛

1、语意问答题

我们在做秒杀的的时候,在点击抢购按钮的时候,为了防止机器人和老黄牛自动抢购,会设置一系列的阻碍机器人请求的步骤。

像我们设置的问答就是典型的方案,  让机器人无法猜测到答案,只能通过人工去确认正确答案。 这样防止机器人自动抢购。

如下面的题图:

751f6799ac9a54a464718b95e7bc5fdf.png

7f3a3956cad16b95fb1641712fe9e6e6.png

看到这个题目,人们很清楚的就能可以做出判断,机器人很难知道语义的意境。

为了防止机器人,

把问答的题目,每次活动都重新设置问答题目,这样就可以有效的防止机器人。

2、视听问答题

颜色、语音、图片

通过上面这两个说明,开阔了我们思维,真正要在项目中使用,还要进行代码的编写。

看程序代码

每一步的请求一定要关联起来,先请求 check__status 这个接口,如果这个接口请求成功,则 getQestion 获取问题,

这样做的好处,就是为了防止跳过接口、直接去后台请求。

fd0077e155c36644252ea80a8925a09b.png

问答题逻辑

1、获取到题目、随机选择一道题目

2、选择的题目获取题库中 随机的4道题

把这四道题种的一道题 的问题 和 答案 拿出来,

把剩下的三道题中的答案拿出来,和上边一题的答案 拼装在一个数组中,通过array_shffle 打乱顺序,返回。

把ask 答案通过一定的加密算法,同时返回到客户端

这里再次添加一个时间戳, 添加时间戳是 验证用户时长。

最后把整体题目 json 返回 。

可以明文返回用于渲染页面,但是不要包含答案;再密文返回一个包含答案的,验证答案的时候,提交密文到服务器。

3、验证问答题是否正确?

通过密文 得到问题、和答案,  验证用户提交的答案是否与正确答案一致,如果一致,放行。

否则提醒用户 问答 错误。

上边设置了一个时间,我们在验证正确答案的时候,这也是需要进行验证时间的,不要时间太长。 这里设置 300 秒

解决刷问题的方法

每个人获取到的问题数量是要限制的,否则很容易被全部获取和分析,失去问题的保密性

1、每个人生成问答题,是否有作答? 如果没有 则这次再次生成这个问题; 如果已经作答,回答是否正确?正确 则下一次

3602a942047359c80c409966055644e4.png

通过上面的模型,防止用户刷我们的题库、失去保密性。

至于问题 保存在哪里?

1、cookie  客户端  建议 保存在cookie

2、服务器端 ? 这个相对来说比较复杂

点触式验证码

6da46ccd4ddf916cb4e6050b778dbfeb.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值