服务介绍

易盾验证码是一个用于区分人和机器的通用验证码组件。传统的字符型验证码由于存在破解率高,用户体验不友好等问题,已不适用于现今的互联网环境。易盾验证码抛弃了传统字符型验证码展示-填写字符-比对答案的流程,采用验证码展示-采集用户行为-分析用户行为流程,用户只需要产生指定的行为轨迹,不需要键盘手动输入,极大优化了传统验证码用户体验不佳的问题;同时验证码后台针对用户产生的行为轨迹数据进行机器学习建模,结合访问频率、地理位置、历史记录等多个维度信息,快速、准确的返回人机判定结果,优化了传统验证码基于单一字符维度容易被暴力破解的问题。

使用场景

易盾验证码可以应用于任何需要区分人机访问的模块,例如注册、登录、发帖、领优惠券、投票等。

可靠性

后端接口稳定性99.99%

性能

接口响应时间50-150ms

兼容性

易盾验证码兼容多个平台浏览器,支持的浏览器列表

PC端浏览器

Chrome

Firefox

Safari

搜狗/猎豹/QQ浏览器/360极速浏览器

IE7/8/9/10/11

移动端浏览器

Safari

UC浏览器

// TODO 待QA补充

开发文档

术语解释

验证码id(captcha_id)

验证码唯一标识,公开可见,用于区分不同的验证码使用场景,如登录、投票、发帖等。

验证码key(captcha_key)

验证码id对应的私钥,不可公开,用于和易盾后台传输时进行签名校验,防止伪造请求。

验证

用户拖动/点击一次验证码拼图(图片验证码)即视为一次“验证”,不论拼图/点击是否正确。

二次校验

验证数据随表单提交到产品后台后,产品后台需要将验证数据发送到易盾后台做二次校验,目的是核实验证数据的有效性。

组件工作流程

易盾验证码整体的工作流程如下

1. 用户访问产品应用页面,请求显示易盾验证码

2. 用户按照提示要求完成易盾验证码拼图/点击

3. 用户提交表单

4. 产品后台将用户提交表单的验证码相关数据发送到易盾后台进行二次校验

5. 易盾后台返回校验通过/失败

服务流程示意图

组件接入流程

前端接入

引入易盾验证码相关javascript

  1. <script src="http://c.dun.163yun.com/js/c.js"></script>

如果接入站点为https站点,需要把地址修改成

  1. <script src="https://c.dun.163yun.com/js/c.js"></script>

初始化验证码组件(最简配置)

  1. <script>
  2. var opts = {
  3. "captchaId": "YOUR_CAPTCHA_ID", // 这里填入申请到的验证码id
  4. "width": 320 // 验证码组件显示宽度
  5. }
  6. NCaptchaInit(document.getElementById('ncaptcha_id'), opts);
  7. </script>

前端配置参数说明

参数

参数类型

默认

说明

captchaId

string

""

验证码id

width

number

320

验证码组件显示宽度

initCallback

function

null

验证码组件初始化完成回调函数

verifyCallback

function

null

验证码验证结束回调函数

captchaId

验证码唯一标识,公开可见,用于区分不同的验证码使用场景,如登录、投票、发帖等。

width

验证码组件显示宽度,单位px

initCallback

验证码组件初始化完成回调函数

  1. initCallback:function(){// 示例
  2. console.log("易盾验证码初始化完成!");
  3. }

verifyCallback

验证码验证结束回调函数,用户拖动/点击验证码后,会调用这个回调函数,回调函数可以针对不同的验证结果做出不同的处理。

  1. "verifyCallback":function(ret){// 示例
  2. if(ret["value"]){// 回调参数的value值表示验证结果true:验证通过 false:验证失败
  3. $("#submit-btn").removeAttribute("disabled");// 完成验证后再启用提交按钮
  4. }
  5. }

后端接入

用户提交表单(post-form)到产品应用后台,会携带一个验证码相关的参数,参数名为

  1. NECaptchaValidate

产品应用需要将该参数传给易盾验证码后台做二次校验,以确保该次验证是有效并且是最近完成的。

二次校验接口

http://c.dun.163yun.com/api/v1/verify

请求参数

参数

类型

必填

备注

id

string

Y

captcha_id

validate

string

Y

提交二次校验的验证数据,即NECaptchaValidate值

user

string

N

用户信息【选填】

signature

string

Y

签名信息,见签名计算

签名计算

// TODO 这里直接参考易盾反垃圾的签名生成说明文档

响应参数

参数

类型

必填

备注

result

boolean

Y

二次校验结果 true:校验通过 false:校验失败

error

int

Y

错误代号

msg

string

Y

错误描述信息

FAQ

为什么需要二次校验?

用户每完成一次验证码验证(拖动拼图),易盾验证码后台会记录该次验证相关的验证信息,并且会对这些验证信息做衰减失效处理(目前默认为10分钟),二次校验是为了确保这次验证是最近10分钟内完成的。如果不做二次校验,那么将可能导致攻击者预先人工完成大量验证码校验,并集中一次提交的攻击行为。

文章来自:网易云

相关导读:

关于网易云验证码的服务介绍

关于网易云验证码V1.0版本的服务介绍的更多相关文章

  1. 代码之间-论文修改助手v1.0版本发布

    论文查重,是每个毕业生都要面临的一个令人头疼的问题,如果写论文不认真,很可能导致查重红一大片. 之前有帮助一些朋友修改论文降低重复率,做了一些工作后发现,国内的查重机构,如知网.维普等,大多数是基于关 ...

  2. YaoLingJump开发者日志(五)V1.0版本完成

    跳跃吧瑶玲下载连接 官网下载 百度网盘下载 提取码:apx9 介绍   总算完成V1.0版本了,下面来简单地介绍一下吧!   打开游戏,最开始会进入到"主界面".   右上角的按钮 ...

  3. 码农很忙代理IP系统V1.0版本上线

    码农很忙代理IP系统V1.0版本上线 经过为期一个月的重写和测试,新版本的码农很忙代理IP系统已于今日正式上线.新版本拥有更精准的匿名类型识别和更高效的验证调度算法. 新版本仍旧采用ASP.NET B ...

  4. 社会单位消防安全户籍化管理系统——半自动提交V1.0版本

    社会单位消防安全户籍化管理系统——半自动提交V1.0版本 首先先上代码,开发这个小程序其实是用来帮助同事完成一项每天都做的繁琐事件,以往需要花费十分钟做这件事情,现在就是傻瓜式,点几下鼠标就好了.本来 ...

  5. Node.js开源应用OSN发布初始V1.0版本-见面版本

    Nodejs开源应用OSN初始版本V1.0发布,请参考本操作说明文档,有任何问题请留言 Nodejs开源应用OSN发布V1.0版本: OSChina收录地址: OSC收录地址:http://www.o ...

  6. 学霸系统UI项目功能说明书 v1.0版本

    发布人员:软件工程实践小队. 发布内容:学霸系统UI项目说明书. 版本:学霸v1.0版本. 学霸系统UI项目说明书 v1.0版本分为以下部分: Part 1:用户须知: Part 2:功能实现: Pa ...

  7. 江中微型统计分析软件V1.0版本完成

    中文名称:江中微型统计分析软件 英文名称: 项目名称:JXUTCMMSAS 项目地址:保密 在研究生最后历时1年的时间里,完成了江中微型统计分析软件V1.0,后续还在不断更新中,将自己的改进算法.机器 ...

  8. 三、主流区块链技术特点及Hyperledger Fabric V1.0版本特点

    一.Hyperledger fabric V1.0 架构 1.逻辑架构: 2.区块链网络 3.运行时架构 二.架构总结 1.架构要点 分拆Peer的功能,将Blockchain的数据维护和共识服务进行 ...

  9. 003-主流区块链技术特点及Hyperledger Fabric V1.0版本特点

    一.Hyperledger fabric V1.0 架构 1.逻辑架构: 2.区块链网络 3.运行时架构 二.架构总结 1.架构要点 分拆Peer的功能,将Blockchain的数据维护和共识服务进行 ...

随机推荐

  1. Web项目打成war包部署Tomcat时运行startup.bat直接闪退部署失败解决方案

    即上篇通过将web项目打成war包部署到Tomcat服务器,解决mysql问题后,又出现了新问题,真是一波三折,所以将解决过程分享给大家,希望能帮助到小伙伴们~ 将打好的war包拷贝到Tomcat的w ...

  2. 随手练——O(n)解决无序数组排序后的相邻最大差值

    题目从这儿看到的 : https://mp.weixin.qq.com/s/2OXg67MfBuQjDPAJxxD8rQ,但是公众号上讲错了,问题还挺严重的. 题目知识点:桶排序. 题目:有一个无序数 ...

  3. Dubbo实践(十二)Refer

    Spring在启动Dubbo客户端应用时,会实例化ReferenceBean<T>并设置配置属性,然后调用ReferenceConfig中的get方法: public synchroniz ...

  4. 安卓混合开发——原生Java和H5交互,保证你一看就懂!

    ** 在Android开发中,越来越多的商业项目使用了Android原生控件与WebView进行混合开发,当然不仅仅就是显示一个WebView那么简单,有时候还需要本地Java代码与HTML中的Jav ...

  5. 404 Note Found 队-课堂实战-项目UML设计

    目录 团队信息 分工选择 课上分工 课下分工 ToDolist alpha版本要做的事情 燃尽图 UML 用例图 状态图 活动图 类图 部署图 实例图 对象图 时序图 包图 通信图 贡献分评定 课上贡 ...

  6. VPP(Vector Packet Processing)浅析

    VPP简介 VPP(Vector Packet Processing)是思科旗下的一款可拓展的开源框架,提供容易使用的.高质量的交换.路由功能 特点:高性能.运行在普通的cpu上. 优点:高性能.技术 ...

  7. JUnit提供测试框架的优势(JUnit Provides Advantages as a Test Framework)

    测试Java类的内部功能就是刚才你做的那些工作了.真正的测试和刚才的简单例子的主要区别是代码库的大小和复杂度.在处理一大堆代码时,你会需要收集情况报告.但上面的例子遇到第一个错误就停止了,它没有收集尽 ...

  8. AutoMapper 帮助类

    AutoMapper帮助类 /// <summary> /// AutoMapper帮助类 /// </summary> public static class AutoMap ...

  9. Web—09-正则表达式

    正则表达式 1.什么是正则表达式: 能让计算机读懂的字符串匹配规则. 2.正则表达式的写法: var re=new RegExp('规则', '可选参数'); var re=/规则/参数; 3.规则中 ...

  10. Mysql Explain的简单使用

    Mysql Explain 主要重要的字段有上面红色方框圈出来的那几个. type: 连接类型,一个好的SQL语句至少要达到range级别,杜绝出现all级别. key: 使用到的索引名,如果没有选择 ...