一、无感知验证码实现原理

1、安全用户“点击完成验证”,安全用户验证通过。
2、风险用户根据风险程度触发二次验证,比如滑动拼图、图片点选等,验证通过之后再允许进行下一步操作。

无感知验证核心在于判断访问用户否是安全用户:
需要根据用户行为数据、访问代理、IP、环境变量等等数据建模,用户点击验证按钮之后去后端接口验证,验证通过才可进行下一步操作。

安全用户判断模型:
1、用户行为数据:
页面停顿时间、点击按钮时长,其他输入事件(埋点)、点击事件(埋点)等等。
2、访问代理:
建立白名单机制,非白名单代理触发二次验证。
3、访问IP:
白名单机制、黑名单机制、IP规则、vpn判断等等。
4、环境变量:
获取用户设备信息、网络信息、操作系统信息等等。

大约需从以上四个维度来建立安全用户判断模型,这种判断模型防御力相对比较弱的,同时还需要配合其他验证方式进行二次验证,进一步提高防御能力。

这只是一个简单的安全判断模型,后续还需动态的完善模型的数据,更细化的行为分析,以及行为训练(我们需要模拟人机操作),来最终确定模型数据的参数值,确定参数值才能保证判断安全性和准确性。

二、图片滑动验证码实现原理:
1、随机选取一张背景图,在背景图的长宽范围内,随机生成x和y的坐标,并结合切块模板图生成遮盖图和模板图。

图1、背景图

图2、切块模板图

图3、模板图和遮盖图

2、将x和y存入到Session或redis,遮盖图和模板图转换成base64加密数据格式,y坐标和图片数据通过接口传到前端。

3、前端根据y坐标和图片数据生成水平滑动拼图控件,ios、安卓端、wap、需单独实现水平滑动控件。

4、控件向右滑动停顿并释放焦点,触发验证码验证事件,获取模板图x坐标和接口返回的y坐标,前往验证接口验证,验证有y值是否正确和x是否在允许的误差范围内,验证通过进行下一步操作,验证未通过提示验证码失败。

滑块验证码源代码下载:

无感知验证码和点击验证码实现原理相关推荐

  1. python12306自动抢票为什么进入个人中心,python自动登录12306并自动点击验证码完成登录的实现源代码...

    以下代码可自动登录12306 - 包括输入用户名密码以及自动识别验证码并点击验证码登陆.该源码需要稍作修改: 把  username.send_keys('xxxxxxx')  中的  xxxxxx ...

  2. 网易易盾验证码移动端迎来新版本 开始支持智能无感知验证

    近日,网易易盾验证码移动端迎来新版本,该版本支持智能无感知验证码,对整体交互及性能等方面进行了优化和提升. 移动端智能无感知验证码交互流程图 验证码移动端最新版本开始支持智能无感知验证码,极致用户体验 ...

  3. 网易易盾验证码移动端迎来新版本 开始支持智能无感知验证 1

    近日,网易易盾验证码移动端迎来新版本,该版本支持智能无感知验证码,对整体交互及性能等方面进行了优化和提升. 移动端智能无感知验证码交互流程图 验证码移动端最新版本开始支持智能无感知验证码,极致用户体验 ...

  4. BootStrap笔记-popover的使用(popover中放验证码,点击更新)

    做出来的效果是这样的. 当鼠标点击验证码的Input框时. 点击里面的img可以进行刷新 对应的代码如下: <link href="css/bootstrap.min.css" ...

  5. thinkphp3.2 代码生成并点击验证码

    本人小菜鸟一仅仅.为了自我学习和交流PHP(jquery,linux,lamp,shell,javascript,server)等一系列的知识.小菜鸟创建了一个群.希望光临本博客的人能够进来交流.寻求 ...

  6. 发票查验一直网络异常、无法显示验证码、点击查验没反应怎么办?

    发票查验一直显示网络异常.无法显示验证码.点击查验没反应,这些情况是税务服务器不稳定造成的,更换浏览器等不能解决这个问题,只能过段时间再试试. Easy发票查验软件针对此类情况独家提供了"一 ...

  7. 如何点击验证码刷新验证码的问题解决方法?

    平日在我们进行论坛验证码生产的时候偶尔会发生验证码模糊看不清的情况,然而此时如何才能够帮助用户进行输入呢? 最好的办法就是刷新出一个最好的清晰的验证码,比如说我们可以点击我们的验证码图片进行刷新,这是 ...

  8. ThinkPHP6 验证码(点击刷新)

    首先使用composer安装验证码扩展包 composer require topthink/think-captcha 然后在页面中展示 <img src="{:captcha_sr ...

  9. jQuery 验证码输入错误后自动刷新验证码 点击验证码图片刷新验证码

    利用jQuery的attr()函数,向Servlet发出请求的时候加一个随机数, 保证每次都是不同的请求 $('#imgVcode').attr("src","/veri ...

最新文章

  1. 第十六届全国大学生智能车竞赛竞速组-室内视觉组补充说明
  2. 小工匠聊架构-超高并发秒杀系统设计 05_服务端性能优化
  3. python -使用del语句删除对象引用
  4. Web前端学习路线分享,初学者不要错过!
  5. ABP vNext微服务架构详细教程——身份管理服务
  6. 计算机导论结业报告大一,河北工业大学计算机导论结业论文.pdf
  7. hdfs中与file数组类似的数组_EXCEL中数组的应用专题之十二:行列数相同数组的运算...
  8. 测试次数----2018年第九届蓝桥杯C/C++省赛B组 第四题
  9. HDU2544 最短路【Dijkstra算法】
  10. sklearn 下的树模型
  11. 深度学习与围棋,零开始一步步实现自己的“AlphaGo”
  12. java基础练习题及答案_java基础测试题含答案.docx
  13. java随机百分比_java随机百分比
  14. 今天来说说白色white
  15. 电脑显示更改默认服务器如何选择,电脑设置服务器在哪里设置
  16. 如何控制H5 video 只能后退(向后拖动)不能快进(向前拖动)
  17. 2022网鼎杯青龙组wp
  18. PDF文档分割简单方法
  19. 计算机组成原理 | 浮点数和定点数(上):怎么用有限的Bit表示尽可能多的信息?...
  20. DataGrid 数据绑定使用小结三(数据绑定)

热门文章

  1. Origin平台意料之外错误修复
  2. 【音乐生成】乐谱生成
  3. 冲顶大会APP技术选型及架构设计
  4. fortran基于svd分解求解广义逆矩阵
  5. STM32L010驱动2.7寸电子水墨屏心得亲测可用
  6. python 粒子动画_python-pygame-粒子效果
  7. [BZOJ5329][SDOI2018]战略游戏
  8. 怎么注册高权重账号及养号流程
  9. HTML+CSS+JS实现图片跟踪鼠标
  10. 接收后台传的图片验证码