其他分享
首页 > 其他分享> > 行为验证,如何兼顾安全性与用户体验(下)

行为验证,如何兼顾安全性与用户体验(下)

作者:互联网

云片新一代行为验证

前端连接

 

网页端

 

兼容性

 

支持Chrome,IE9 +,360,腾讯,搜狗,Safari,Firefox,Opera;主流手机浏览器

 

初始化SDK JS

注:IE9 +需要在SDK之前另外发布polyfill,示例如下

配置验证对象

 

新的YpRiddler(options)
选项对象为配置对象,以下为配置参数:

参数类型必填备注
成功函数(validInfo:object,close:function)ÿ监听验证成功事件。validInfo:验证成功返回参数(令牌,身份验证);关闭:关闭验证窗口
appId细绳ÿ应用标识。
版本细绳ÿ接口版本号
容器HTMLElementÿ验证逻辑绑定的元素
noButton布尔值F是否在container内渲染按钮,当mode不为flat时有效
模式细绳FUI插入方式。flat-直接嵌入,float-浮动,dialog-样式,external-外置滑动(初始化滑块时才浮现验证图片,仅适用于滑动拼图验证)默认对话框
onError功能F验证异常处理器。即当云片验证服务出现异常时,可以在此之后上处理,某些,不使用验证,或者,使用图片验证服务等。
失败函数(代码:int,消息:字符串,重试:函数)F用户验证失败处理器,代码:错误码,msg:错误信息,重试:重试验证逻辑。
开始之前函数(下一个:函数)F进入验证逻辑前的勾子。next:继续执行后续逻辑
已到期整型F请求过期时限。单位秒,至少30
jsonpField细绳Fjsonp处理器名。默认为ypjsonp
rsaPublicKey细绳F加密公钥。如非异常情况则无需设置
主机细绳F验证服务器地址。如非异常情况则无需设置
winWidth数字/字符串F窗口宽度。宽度最小230px:两种方式:1。纯数字格式,单位px。默认500; 2.百分比格式,例如80%,表示相对当前浏览器可视区域宽度的百分比。不小于230px
细绳F支持语言,默认简体中文。zh-cn(简体中文),en(英文)
langPack目的F外部引入所需设置语言文案。需按指定格式设置对象引入,当外部引入语言包时,lang设置会自动替换

 

winWidth窗口宽度配置

lang配置(任选)

 

系统支持的中文,如需要替换其他语言请进行如下配置。总体支持的语言有:简体中文,英文。
如果需要设置文案的语言,可通过外部文件,按指定格式设置文案内容,然后在options配置项中通过langPack预期语言对象(对象)即可。

演示版

接入成功样例

前端接收完成后,通过谷歌浏览器的网络查看请求记录,验证请求会返回两个参数:authenticatetoken

captcha_token.jpg

初步纳入

 

接口名称

 

二次验证接口

 

接口地址

 

https://captcha.yunpian.com/v1/api/authenticate

 

请求

 

 

请求参数

参数类型必填备注
验证码细绳ÿ验证应用ID,对应用户后台分配的APPID
代币细绳ÿ前端从verfiy接口获取的令牌,令牌为一次验证的标志。
认证细绳ÿ前端从verfiy接口验证通过后,返回的参数
secretId细绳ÿ验证应用密钥id
版本细绳ÿ版本,固定值1.0
用户细绳F可选值,接收方用户标志,如担心信息过多,可采用摘要方式替换。
时间戳记细绳ÿ当前最高的千年值,如1541064141441
随机数细绳ÿ随机正整数,在1-99999之间,与timestamp配合可以防止消息重新
签名细绳ÿ签名信息,见签名计算方法

 

支持的语言及请求示例

 

Java请求示例

C#请求示例

PHP的请求示例

Python要求范例

补充说明:

 

1,签名计算方法

 

  1. 第一步:对所有请求参数(不包括签名参数),按照参数名ASCII码表升序顺序进行排序。如:foo = 1,bar = 2,foo_bar = 3,baz = 4排序后的顺序是bar = 2 ,baz = 4,foo = 1,foo_bar = 3。
  1. 第二步:将排序好的参数名称和参数值构造成字符串,格式为:key1 + value1 + key2 + value2 ...。根据上面的示例得到的构造结果为:bar2baz4foo1foo_bar3。
  1. 第三步:选择与secretId配对的secretKey,加到上一步构造好的参数字符串之后,如secretKey = e3da918313c14ea8b25db31f01263f80,则最后的参数字符串为bar2barz4foo1foo_bar3e3da918313c14ea8b25db31f01263f80。
  1. 第四步:把3步骤拼装好的串联采用utf-8编码,使用MD5算法对串行进行摘要,计算得到签名参数值,将其加入接口的参数中即可。MD5是128位长度的摘要算法,用16位二进制表示,一个十六进制的字符能表示4个位,所以签名后的长度长度固定为32位十六进制字符。上述签名的结果为:59db908f26fb997c30b32ddb911485c2。

2,响应码释义

 

前端相关响应码

 

验证接口响应码释义

响应码错误信息具体描述
0好的验证通过
1个错误的请求验证请求数据缺失或格式有误
2个验证失败验证不通过
400param_invalid请求参数错误,检查ik参数
400captcha_id_invalidAPPID不存在
429太多要求请求过于重复,请稍后再试
500服务器错误服务异常

 

获取界面响应码释义

响应码错误信息具体描述
0好的获取验证图片成功
400param_invalid请求参数错误,检查ik参数
403禁止的请求异常请求,已拦截,需要中断才允许恢复访问,可能是访问过多重复导致
400captcha_id_invalidAPPID不存在
429太多要求请求过于重复,请稍后再试
500服务器错误服务异常

 

初步相关响应码

 

响应参数

参数类型必填备注
代码整型ÿ成功为0,非0为异常信息,详见下方“二次验证接口响应码释义”
味精细绳ÿ错误描述信息

 

二次验证接口响应码释义

响应码错误信息具体描述
0好的二次验证通过
400validate_fail二次验证不通过
400signature_invalid签名验证失败
400param_invalid请求参数错误,检查ik参数
400captcha_id_invalidAPPID不存在
429太多要求请求过于重复,请稍后再试
500服务器错误服务异常

 

详情点击云片官网:云片官网

标签:细绳,请求,验证,兼顾,接口,响应,参数,安全性
来源: https://blog.csdn.net/wh761076/article/details/116228775