拒绝黄牛

1、语意问答题

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

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

如下面的题图:

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

为了防止机器人,

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

2、视听问答题

颜色、语音、图片

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

看程序代码

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

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

问答题逻辑

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

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

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

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

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

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

最后把整体题目 json 返回 。

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

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

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

否则提醒用户 问答 错误。

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

解决刷问题的方法

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

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

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

至于问题 保存在哪里?

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

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

点触式验证码

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

  1. php同时抢购 代码,php如何处理抢购类功能的高并发请求

    在高并发请求下容易参数两个问题 1.数据出错,导致产品超卖. 2.频繁操作数据库,导致性能下降. 本文主要和大家详细介绍了php处理抢购类功能的高并发请求,具有一定的参考价值,感兴趣的小伙伴们可以参考 ...

  2. redis使用watch完成秒杀抢购功能

    redis使用watch完成秒杀抢购功能: 使用redis中两个key完成秒杀抢购功能,mywatchkey用于存储抢购数量和mywatchlist用户存储抢购列表. 它的优点如下: 1. 首先选用内 ...

  3. 基于Redis实现的抢购代码示例

    示例代码是基于博客 https://blog.csdn.net/qq1013598664/article/details/70183908的错误案例修改而来,如果有问题望多多指点,错误代码可以去原文查 ...

  4. 简单的redis使用watch完成秒杀抢购功能

    2019独角兽企业重金招聘Python工程师标准>>> Redis使用watch完成秒杀抢购功能: 使用redis中两个key完成秒杀抢购功能,mywatchkey用于存储抢购数量和 ...

  5. 【黄啊码】php结合redis实现商城在线秒杀抢购

    抢购.秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个: 1 高并发对数据库产生的压力 2 竞争状态下如何解决库存的正确减少("超卖"问题) 对于第一个问题,已经很容易想到 ...

  6. java抢购_java redis 实现抢购秒杀

    2018.10.24 今天研究了下抢购秒杀的功能实现 网上查了一大堆 用redis的最多. 主要是通过redis的 watch multi 事务来控制秒杀数量 不超卖. 这里说下自己的感受: 不超卖的 ...

  7. python 抢购还是js抢购好_一句JS帮你秒杀,抢购

    标签: 刚刚看到一哥们儿写了一篇jquery插件之倒计时-团购秒杀  突然想到一个主意就是如题 想法:现在很多地方有类似秒杀,抢购等拼手速,网速的(其实就是服务器渣,如:某米),  很多人就想到可以写 ...

  8. Java商品秒杀抢购模拟双十一基础版

    Java秒杀抢购 需要用到的技术 java多线程 Redis mysql数据库 Quartz定时器 用到的框架: SSM 整体项目结构: 前端页面不用我们写,我这里提源码项目自己下载 链接:https ...

  9. 秒杀抢购案例,基于 Redis 实现

    目录 1.关于全局唯一 ID 生成器 1.1 需要满足的特性 1.2 代码实现 1.3 其他的唯一 ID 生成策略 2.实现秒杀下单 2.1 超卖问题的产生 2.2 超卖问题的分析与解决 2.21 悲 ...

最新文章

  1. 在Linux下怎样让top命令启动之后就按内存使用排序(或CPU使用排序)?
  2. 模块化编程AMDCommonJS
  3. 没有调查就没有发言权
  4. 方欣科技算法题面试:蛇形矩阵
  5. python学习-字符串格式化
  6. 鸟哥学习笔记六(基础篇第十一章)
  7. Some Principles
  8. 【Java】数组元素的赋值与输出
  9. android retrofit 2.0公共参数,Retrofit2.0 添加公共参数
  10. linux netstat
  11. js中几个对象的区别和用法
  12. 全网销售额超 2.67 亿!德施曼连续 5 年蝉联双11全网智能锁销冠
  13. linux中dns服务故障,Linux nslookup命令对DNS域名服务器进行故障排除
  14. 计算机睡眠和休眠哪个更好,电脑睡眠和休眠哪个好 有什么区别
  15. 鸿蒙版瑞幸咖啡开发日记(六)详情页与首页联动
  16. 解决fullpage滑动,控制台的报错提示
  17. 电脑装windows和安卓双系统引导_Remix mini安卓电脑,玩的不只是Windows那张皮
  18. 套头文件html重复,关于C++头文件重复包含的问题
  19. NVIDIA Jetson AGX Xavier
  20. Java 联网五子棋(socket)

热门文章

  1. 如何让word左边显示目录
  2. MATLAB函数——lowpass
  3. html首页我的待办,我的待办.html
  4. Android与iOS在DES加密算法上的统一
  5. 别坐在金矿上捡垃圾:给管理者的10条建议
  6. 基于MMRotate训练自定义数据集 做旋转目标检测 2022-3-30
  7. Redis TTL说明
  8. 2022 最新 Android 基础教程,从开发入门到项目实战【b站动脑学院】学习笔记——第八章:高级控件
  9. MATLAB:零状态响应(lsim(连续);filter(离散))、冲激响应(impulse或impz)和阶跃响应(step)、卷积(conv)
  10. IT运维服务外包管理的两种模式