服务介绍

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

使用场景

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

可靠性

后端接口稳定性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. 4、Android-数据存储方案(SQLite数据库存储)

    4.4.SQLite数据库存储 这是Android内置的数据库 是一款轻量级的关系型数据库 运算速度非常快.占用资源少.通常只需要几百kb的内存就够了 因而特别适合在移动端设备上使用 SQLite不仅 ...

  2. 用ReentrantLock和Condition实现线程间通信

    在Java多线程中,除了使用synchronize关键字来实现线程之间的同步互斥,还可以使用JDK1.5中新增的RetrantLock类来实现同样的效果.RetrantLock类的扩展功能也更加强大, ...

  3. Spring(二)之入门示例

    任何编程技术,特别是入门示例,通常都是Hello World,在这里我也遵循这个业界公认的原则. 这里我使用的maven项目,大家如果想要演示,建议使用Eclipse(含maven插件)或Idea(含 ...

  4. Ubuntu 14.04 系统安装后无法上网的问题(eth0识别不出)

    Ubuntu 14.04 1.网口处网线状态等正常跳动 2.ifconfig 指令查询不到网卡信息 说明缺少了网卡驱动. 使用 lspci 指令查看系统中所有的驱动信息,找到 Ethernet Con ...

  5. [转]基于C#的开源GIS项目介绍之SharpMap篇

    我是一个刚毕业的GIS本科毕业生,目前在杭州从事GIS软件应用开发.在项目开发中总感觉自己的编程水平还不够,于是想找些开源GIS小项目来研究研究,借以提高自己的编程能力和项目开发能力.在网上搜了一下“ ...

  6. 使用Apache HttpClient 4.5设置超时时间

    使用HttpClient,一般都需要设置连接超时时间和获取数据超时时间.这两个参数很重要,目的是为了防止访问其他http服务时,由于超时导致自己的应用受影响. 4.5版本中,这两个参数的设置都抽象到了 ...

  7. echo图片延迟加载js

    插件描述:和 Lazy Load 一样,Echo.js 也是一个用于图像延迟加载 JavaScript.不同的是 Lazy Load 是基于 jQuery 的插件,而 Echo.js 不依赖于 jQu ...

  8. OPENGL绘制文字

    OPENGL没有提供直接绘制文字的功能,需要借助于操作系统. 用OPENGL绘制文字比较常见的方法是利用显示列表.创建一系列显示列表,每个字符对应一个列表编号.例如,'A'对应列表编号1000+'A' ...

  9. SSAS中CUBE的多对多关系既可以出现在中间事实表上也可以出现在中间维度表上

    开发过SSAS中CUBE的朋友,肯定都知道维度用法中的多对多关系, 这篇文章不想详细阐述多对多关系在CUBE中的结构,详情请在网上寻找CUBE多对多关系的介绍资料. 下面是是一个典型的CUBE中多对多 ...

  10. Java中的集合和常用类

    Java中的常用类: ▪ Object类 ▪ Math类 ▪ String类和StringBuffer类(字符串) ▪ 8种基本类型所对应的包装类 ▪ java.util包中的类——Date类 Obj ...