服务介绍

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

使用场景

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

可靠性

后端接口稳定性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. BZOJ2330:[SCOI2011]糖果(差分约束)

    Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的 ...

  2. luogu P2015 二叉苹果树

    嘟嘟嘟 这应该算一道树形背包吧,虽然我还是分不太清树形背包和树形dp的区别…… 首先dp[i][u][j] 表示在u的前 i 棵子树中,留了 j 条树枝时最大的苹果数量,而且根据题目描述,这些留下的树 ...

  3. PHP-----TP框架----命名空间

    TP框架----命名空间 命名空间,起什么作用??? [1]命名空间是一个虚拟的目录,这个文件有可能存在这个电脑里的任何一个地方,但是如果要把这个文件它的命名空间全部写成同一个那么这些文件就相当于在同 ...

  4. 【vue】饿了么项目-goods商品列表页开发

    1.flex 属性是 flex-grow.flex-shrink 和 flex-basis 属性的简写属性. flex-grow 一个数字,规定项目将相对于其他灵活的项目进行扩展的量. flex-sh ...

  5. git用户限制ssh登录服务器

    服务器额外的防范措施: 搭建git服务器后通常会建立一个git账户,其它人共用这个账户来克隆或推送数据到git仓库中,通常也只需要这个功能,但是如果不加限制,那么其它人可以通过这个git账户登录到主机 ...

  6. Java Calendar and SimpleDateFormat 时间模块

    package UtilTest; import java.util.Calendar; import java.text.SimpleDateFormat; import org.apache.co ...

  7. xcode Aborting commit: '~/Pods' remains in tree-conflict 错误的解决办法

    在网上找了很多, 最后找到一个比较简单有较的 filename: 是出错的文件的绝对路径: xcode会提示 然后开终端: 1:svn remove --force filename 2:svn re ...

  8. Oracle输出数字1-10

    ,) from dual connect by level<

  9. LUA IO库

    I/O库为文件操作提供两种模式. 简单模式(simple model)拥有一个当前输入文件和一个当前输出文件.而且提供针对这些文件相关的操作.全然模式(complete model)使用外部的文件句柄 ...

  10. MessageBox.Show用法

    private void button3_Click(object sender, EventArgs e) { MessageBox.Show("  1  个参数 "); } ~ ...