vaptcha的二次验证

vaptcha二次验证

  • 官网介绍
    • 应用场景
    • 接入流程
    • 验证流程
    • 后台代码实现

官网介绍

VAPTCHA是“Variation Analysis based Public Turing Test to Tell Computers and Humans Apart”(基于变量分析来区分人类和计算机的图灵测试程序)的缩写,又称为手势验证码, 一种基于人工智能和大数据的人机验证解决方案 。用户仅需用鼠标绘制指定轨迹即可完成人机验证。VAPTCHA能有效防止恶意密码破解、论坛灌水、垃圾邮件、撞库等。

与传统验证码相比,它具有如下特点:

易识别: 验证码由简单的轨迹构成,不会因为过度污染、干扰或者变形处理导致无法识别的情况
手势是世界通用语言,任意语言背景用户均可无障碍轻松识别。
速度快: 不同于传统验证码,VAPTCHA仅需要用户用鼠标或手指绘制指定轨迹,在不超过1秒的时间内即可完成人机验证。
受信任的客户端可以直接无感验证通过,甚至感觉不到人机验证的存在。
更安全: 手势有无限种组合,与有限组合的传统验证码相比有天然的优势。
手势图经过逆向干扰处理,程序识别时会在二值化、查找边缘、聚类等各阶段遇到巨大挑战。
人类绘制轨迹时会在加速度、角速度、抖动幅度等指标上具备稳定的生物特征,VAPTCHA特征库会对提交轨迹做进一步筛选且动态更新。
用户的历史验证行为会被记录并建档用于下次人机验证时的辅助判断条件,多次恶意验证的客户端设备指纹会加入黑名单。

应用场景

VAPTCHA在保证极高安全性的同时具备优异的用户体验,VAPTCHA可以有效防止如下危害行为:

刷票: 利用脚本程序在投票页面重复投票从而影响以投票数量为依据的排名。
垃圾注册: 利用自动化程序在网站或APP的注册页批量提交垃圾注册,比如最典型的批量注册邮箱账号然后卖到黑灰产业来盈利。
账号破解:通过数据字典或者穷举密码来暴力破解账号,如果没有人机验证环节,理论上所有账号都可以在有限时间内破解完成。
垃圾邮件、短信: 通过自动化程序调用邮件或短信接口来群发推广、垃圾信息,不仅会快速消耗余额,也让被发送方苦不堪言。
人工打码: 人工识别验证码是全世界人机验证面对的共同难题,VAPTCHA通过限制客户端频率、黑名单限制、提高识别难度等手段可以大幅提高人工打码的成本。

接入流程

vaptcha的二次验证_第1张图片

验证流程

vaptcha的二次验证_第2张图片

VID:每个验证单元的唯一标识

KEY:用于加密校验,每个验证单元唯一

Knock:每次验证尝试的唯一流水号

设备信息:浏览器环境、设备指纹等信息用于追踪攻击源

Token:验证成功后返回的标记

IP:请求验证的用户IP

二次验证:由接入应用后端服务器发起的再次确认验证过程!

后台代码实现

API请求数据
地址: http://0.vaptcha.com/verify

POST参数 说明
id 验证单元的VID
secretkey 验证单元的Key
scene 验证单元场景,e.g: 0
token 客户端验证成功得到的token
ip 获取用户的remote address

API响应结果
返回json字符串

{
    "success": 1, //验证结果,1为通过,0为失败
    "score": 90, //可信度,区间[0, 100]
    "msg": "" //错误信息
}



/**
* vaptcha 二次验证
*@ token :前端传的vaptcha的回应token
* @return
*/
public static Integer checkVaptcha(String token){
String url = “http://0.vaptcha.com/verify”;
JSONObject postData = new JSONObject();
postData.put(“id”, “你的id”);
postData.put(“secretkey”, “你的key”);
postData.put(“token”, token);
postData.put(“ip”, “你的ip”);
JSONObject json = restTemplate.postForEntity(url, postData, JSONObject.class).getBody();
assert json != null;
return (Integer) json.get(“success”);
}

应该就这些吧  有问题可以一块交流  qq:1213544665

你可能感兴趣的:(调用第三方资源)