服务介绍

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

使用场景

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

可靠性

后端接口稳定性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. 随手练——洛谷-P1151(枚举与暴力搜索)

    枚举 #include <iostream> using namespace std; int main() { ; cin >> k; ; i < ; i++) { ) ...

  2. docker-5-容器数据卷

    1.是什么 一句话:有点类似我们Redis里面的rdb和aof文件   先来看看Docker的理念: *  将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的 ...

  3. 初始化列表initializer_list

    初始化列表定义在<initializer_list>,初始化列表简化了参数数量可变的函数的编写,初始化列表的所有的元素都应该是同一种数据类型 由于定义了列表中允许的类型,所以初始化列表是安 ...

  4. 利用n 升级工具升级Node.js版本及在mac环境下的坑

    一.利用n 升级Node.js 最近在用NPM安装一个nodejs工具时发现,我的nodejs的版本有些旧了.这不是大问题,只要升级就可以了,当然,重新从nodejs.org最新版本是一种方法,但我想 ...

  5. CUDA 纹理的使用

    纹理绑定有两种,一个是绑定到线性内存就是用cudaMalloc();cudaMemcpy();开辟的内存空间,另一种是绑定到cudaMallocArray, cudaMemcpyToArray开辟到的 ...

  6. DG不同步,MRP0进程打不开

    问题描述:主库备库之前正常连接,但是昨天磁盘空间满了之后,由于不知什么原因将备库重做日志删了,今天早上发现DG不同步的报警. 当时思路如下:1.通过select thread#,low_sequenc ...

  7. win7在安装时跳过输入用户名界面,直接开启管理员用户

    WIN7原版系统安装完后需要创建用户,为了追求纯净简化不必要的步骤,可以选择跳过创建用户直接启用内置管理员账户.首先,到了创建用户这一步先别急着往下点,此时按键盘的SHIFT + F10 组合键调出命 ...

  8. Springboot 启动文件报错,原因是@ComponentScan写成了@ComponentScans

    Springboot 启动文件报错,原因是@ComponentScan写成了@ComponentScans

  9. Extjs6 怎么重写框架的类

    创建一个覆写(override)类的推荐方法如下: Ext.define('MyApp.overrides.panel.Panel', { override: 'Ext.panel.Panel', c ...

  10. MySQL数据库的隔离级别之可重复读为什么能够有效防止幻读现象的出现

    可重复读隔离级别,不允许存在幻读,该隔离级别之所以能够有效防止幻读现象的出现,是因为可重复读这个隔离级别有用到GAP锁(间隙锁).下面我们以解析SQL语句为切入点,来解释个中原因. 前提条件:①数据库 ...