极验验证-滑动验证码!
1
1
服务介绍
行为式验证技术是继传统码式验证技术后的新一代验证安全技术。
作为一个革命性的验证安全技术,行为式验证技术对“验证安全”进行了全新的定义与颠覆。 新一代行为式验证技术的安全理论构建在多门学科的理论基础之上,具有多重复合且相互异维的高强度防御体系。 行为式验证技术的核心思想是利用用户的“行为特征”来做验证安全判别。整个验证框架采用高效的“行为沙盒”主动框架, 这个框架会引导用户在“行为沙盒”内产生特定的行为数据,利用“多重复合行为判别”算法从特指、视觉、思考等多重行为信息中辨识出生物个体的特征, 从而准确快速的提供验证结果。
极验验证采取BGP多线接入、分布全国的CDN加速、云缓存加速……确保最快响应速度。 服务器集群多重热备、DDos智能清洗……提供最稳定的服务。SSL传输加密保障全程数据安全.
极验验证服务是由极意网络科技有限公司提供的`SAAS`服务,核心的安全体系部署在公有云服务器上。 网站主通过使用极意网络官方提供的相关SDK,可以很方便的使用本公司提供的优质互联网安全服务。
术语解释
一个验证具有公钥id、私钥key等基本信息。验证码信息登陆极验后台管理系统可以查看自己验证码信息详情。
在代码层次的体现: id放在web前端引用,key放在服务器后台的sdk中。
私钥key
字段类型:字符串
功能说明:验证码的公钥唯一的对应,在后台云验证需要私钥来进行加密,保障验证安全。用户在自己网站后台填入私钥,对自己网站生成的验证结果用私钥加密,完全保障了验证码与网站的关联。
sdk
极验验证针对网站开发人员提供了更多的接口,方便开发人员根据自己网站的需求使用验证。极大大降低用户使用我们验证服务的门槛。
云验证
极验验证不仅在网页中嵌入验证模块,在前端进行验证之后,将用户的验证信息在网站后台发送到极验云端进一步验证,进一步保障了验证安全。
产品体系
目前极验为主要的客户端都提供了丰富的产品支持。极验核心服务和网站主及客户端的产品体系结构图如下:
通讯过程
-
浏览器请求网站主页面
- 网站主请求极验服务器做心跳检测
-
- 判断极验SAAS服务是否正常
- 获取必要的验证初始化工作
-
极验心跳反馈
-
启用正常(或者启用failback防宕机机制)
-
页面初始化验证模块
-
用户交互,浏览器上传行为数据到极验
-
极验服务器分析给出结果到浏览器客户端
-
浏览器提交数据到客户服务器
-
客户端服务器使用SDK二次验证
-
给出页面响应操作
极验验证/网站主/客户浏览器三方的通讯时序图如下:
宕机回滚
方案代号:failback
在遇到不可抗拒的因素,例如:地震,火灾,机房大规模停电。极验也尽量保证不影响用户页面的正常使用。
- 极验技术团队尽快多方面联系和解决,尽快恢复服务。
- 在此期间,网站主的验证会自动切换到离线备选方案状态,确保用户的业务逻辑能够正常通行。
主要原理:
-
浏览器向客户服务器请求页面
-
客户服务器向极验服务器发起请求
- 根据极验服务器的运行情况返回不同的页面
- 如果极验服务器正常。 加载极验验证
- 如果极验服务器不正常。 加载极验离线版,或者用户自己的原始数字图片验证码
-
用户提交页面时,执行不同的验证手段。
离线备选方案通讯图如下:
运行环境
极验验证实现多平台兼容的策略,可以覆盖99.99%以上的上网用户
- PC端浏览器
-
- IE6/7/8/9/10/11
- Chrome
- Firefox
- Safari
- 搜狗/猎豹/360/QQ浏览器
- 移动端浏览器
-
- UC
- 微信/手Q/QQ浏览器
- Chrome
- FireFox
- Safari
- Andoird原生浏览器
- iOS原生浏览器
- 搜狗/猎豹/360
- PC系统
-
- XP/Win8/Win8以上
- Mac OS
- Linux Desktop
- 移动平台
-
- Android
- iOS
集成支持
服务端集成
根据不同的服务端建站web开发语言,官方提供了相应的语言级SDK级支持。
语言列表如下:
- java
- php
- csharp
- nodeJs
- python
- 其它
对于以上没有列出的比较小众的语言,官方会提供开发原理文档,让有兴趣的开发者自主开发。
如果有兴趣,可以成为我们的github贡献者。(请联系:QQ1295351490)
客户端集成
针对Web应用和本地化应用,官方提供了如下集成技术支持:
- web客户端
-
- pc-web
-
- PC浏览器Web应用支持
- mobile-webapp-canvas
-
- 移动端Web应用支持
- 移动本地客户端
-
- android
-
- 原生本地APP集成
- iOS
-
- Object-C原生本地App集成
- Swift原生本地App集成(待开发...)
性能指标
极验验证采取BGP多线接入、分布全国的CDN加速、云缓存加速……确保最快响应速度遇到不可抗拒的因素,如地震,雷电。此安全服务必须具有灾备切换能力。
- 服务器平均响应时间:50~200ms
- 前端平均响应时间:10~200ms
- 验证验证成功平均耗时:1.75s
- 最小并发访问量:1万/秒
- 宕机回滚自动切换:支持
安全指标
- 防重放
-
客户服务器会对验证结果进行一次查询,在极验的服务器上,只要验证被查询过一次就失效,不存在“一次成功,反复重复验证”的情况。
- 防绕过
-
因为极验验证是存在客户服务器的二次查询机制,此通过过程来自于两个可信终端:网站主服务器和极验服务器,完全避免了机器人在客户端上对判定结果的更改,避免破解程序绕过验证模块。
- 防人工打码
-
极验验证模块对所有的验证活动都具有时效限制,不可能存在一次性拖动N次,然后在过很久后再集中使用刷榜的问题。从根本上极大的增加了人工打码的成本。
使用流程
- 注册极验账号并登录进入后台管理
- 在用户管理界面添加验证模块
- 在安装界面选择相应的平台或语言,按照提示步骤进行安装(自动为您嵌入了验证id/key)
- 完毕完毕后,查看验证报表来确认验证服务的正常使用
下面SDK使用文档中提到的`{{id}}`,`{{key}}`分别指代您创建的验证模块的id/key
1
基本介绍
服务端的SDK存在的目的是为了让真正的验证请求和回答都来自于可信的终端:网站主服务器和极验服务器。
极验为每一种服务器端开发语言提供了SDK,并以web客户端为例子提供了相应的Demo,开发人员可以快速的搭建起相应的演示程序。
开发人员使用Demo提供的默认验证模块快速搭建本地应用并成功运行后,只需要经过如下步骤做出相应修改就可以完成个人专属验证模块的绑定
语言展示
csharp
在github中clone出最新Demo项目,快速搭建本地应用:
git clone https://github.com/GeeTeam/gt-csharp-sdk.git
前往 项目主页
python
在github中clone出最新Demo项目,快速搭建本地应用:
git clone https://github.com/GeeTeam/gt-python-sdk.git
前往 项目主页
node
安装geetest
npm install geetest
在github中clone出最新Demo项目,快速搭建本地应用:
git clone https://github.com/GeeTeam/gt-node-sdk.git
前往 项目主页
其它语言
由于web开发语言各类众多,其它语言类型官方无法全部覆盖,故会给出相应的开发原理文档,有兴趣的用户可以通过此文档,集成极验验证模块。
下面将列出来自热心的第三方开发者的贡献的SDK项目,特列表出来,供网站主参考:
- asp
-
- git clone https://github.com/GeeTeam/gt-asp-sdk.git
- 项目主页
- ruby
-
- git clone https://github.com/GeeTeam/gt-ruby-sdk.git
- 项目主页
- vb
-
- git clone https://github.com/GeeTeam/gt-vb-sdk.git
- 项目主页
注意:以上SDK仅供开发参考,官方不承诺提供长期技术支持
1
基本介绍
极验验证除了在服务器端提供了广泛的语言支持外,在客户端也提供了多平台的扩展支持。
客户端主要涵盖了如下平台:
- pcWeb
-
普通台式电脑,笔记本电脑web页面前端组件
- 移动Web
-
移动智能手机上的web页面前端组件
- android应用
-
原生android本地app调用组件
- iOS应用
-
原生iOS本地app调用组件
注意:
- pcWeb对IE6/7/8这些低版本浏览器进行了兼容
- pcWeb使用保守的前端实现方式,可以兼容移动端页面
- 移动Web针对移动端更强大的浏览器引擎,使用了高级实现方式,具有更流畅的体验
pcWeb
组件设置
注意:为了降低普通用户的使用门槛,本示例以 同步请求 方式为例子来作为示例引导。
直接在页面的任意地方(建议放在头部head处),引入如下代码:
<script src="http://api.geetest.com/get.php"></script>
这样就在页面中完成了对验证的前端 gt_lib 库的引入
注意:
如果是https页面的引用,则使用如下代码:
<script src="https://api.geetest.com/get.php"></script>
然后使用如下方式将对象绑定到相应的宿主页面的显示层
new Geetest(config).appendTo(Dom);
关于上述的一些接口的具体函数请参考下文。
在web_api中引入了一个重要的Geetest类,关于它的最基本配置如下。
new window.Geetest(config)
使用new新建一个Geetest实例,将js对象config参数传入,config参数含义如下:
-
gt:用户在极验后台建立的检验模块id
-
challenge:验证事件流水号
- product:验证模块的前端展现形式
- float:浮动式
- embed:嵌入式
- popup:弹出式(注意事项)
- popupbtnid:页面绑定的submit按钮的id(只有在product类型为popup的时候才需要设置此参数)
-
设置方法见:bindOn()
- lang:界面显示语言,默认中文
-
- zh-cn:中文
- en:英文
- https:是否支持https
-
- true:在https使用
- false:在http下使用
- sandbox:是否完全沙盒态(可选)
-
- true: 验证插件处于完全的沙盒状态运行,不产生任何越界行为。
- false: 默认值,对部分中小网站主的宽松的前端验证做轻微的DOM兼容处理。
- width:指定验证模块宽度
-
- 在移动端使用canvas版本时有效
- PC版本不用设置此参数,是固定宽度。
实现如下的要求:
- 验证的id为 {{id}}
- 产品展现形式为 embed
- 绑定到宿主页面的id为 div_id_embed 的div层(用来放置验证模块的容器)
初始化示例代码如下:
var gt_captcha_obj = new window.Geetest({
gt: "{{id}}",
challenge:"{{challenge}}",
product: "embed"
})
gt_captcha_obj.appendTo("#div_id_embed");
关于上述代码的说明:
- {{id}}为网站主在后台申请的验证模块的id
- {{challenge}}为网站主服务器向极验服务器注册的验证事件
- 示例使用接口方法见 appendTo()
前端API
appendTo(position [, after])
用途:将验证码dom添加到相关的位置 参数:
- position:表示将验证码添加到的位置
- dom元素
- id选择器字符串:”#test”
- jq选择器:$(‘.test’),会自动选择第一个元素
- querySelector接受的选择器字符串: ”.test” (仅在浏览器支持querySelector时)
- after:可选参数
- 可选参数after,boolean,默认为false;
- true: append到所制定元素之后
- false: append到所制定元素之内
bindOn(btn)
对popup模式,使用bindOn绑定按钮,点击按钮弹出验证码 接受参数和appendTo的position一致
refresh()
手动刷新验证码
onReady(callback)
当监听到本体DOM元素加载完毕执行callback函数
onRefresh(callback)
当刷新时执行callback函数 例子:
captcha.onRefresh(function(){
pass = false;
})
onStatusChange(callback)
当状态改变时执行callback(message) message为状态改变的结果,有Fail, Forbidden, Abuse, Error
onSuccess(callback)
当验证成功时调用callback函数 例子:
captcha.onSuccess(function() {
var validate = captcha.getValidate();
$.ajax({
url : "VerifyLoginServlet",
type : "post",
data : validate,
success : function(sdk_result) {
console.log(sdk_result)
}
});
})
onError(callback)
当验证出现未知错误时调用callback函数作为failback方案
例子:
captcha.onError(function() {
//switch to other captcha
//or refresh the page to use failback from SDK
})
getValidate()
如果验证成功,返回验证码的结果(三个需要传给后台的值,原由三个input传递),用于ajax提交 如果失败则返回false
enable() 和 disable()
对于popup形式,可以通过disable和enable方法来临时禁用或恢复验证码的弹出。
综合示例
//创建一个embed类型的captcha
window.embed_captcha = new window.Geetest({
gt: '{{id}}',
product: 'embed'
}).appendTo("#embed_div_id");
//创建一个popup类型的captcha
window.popup_captcha = new window.Geetest({
gt: '{{id}}',
product: 'popup'
}).appendTo('#popup_div_id').bindOn('#click')
//ajax提交示例
embed_captcha.onSuccess(function() {
$.ajax({
data: embed.getValidate()
})
})
高级用法
自定义静态文件加载时机
加载极验的js库分为两种方式:
- 静态加载
- 动态加载
用户可以根据自身需求来选择相应的加载方式。
前面的文档为了降低普通用户的使用门槛,默认是以静态加载的方式来描述。但是对于有特殊需求的用户也可以选择动态的载方式。 关于动态和静态的方式的区别如下所述。
静态加载
静态方式适合于普通用户,实现方法简单直接,但是和页面的载入是同时向极验服务器请求静态库文件,会占用页面的少量带宽。
注意:静态加载方式可以是同步请求也可以是异步请求
关于同步和异步,请参考 同步和异步请求及执行
<script src="http://api.geetest.com/get.php"></script>
动态加载
动态加载方式适合于对前端请求事件流通严格控制需求的用户,可以在需要验证的时候才向极验服务器请求静态库文件,为网站加载节省带宽。
例如:页面弹出浮动层注册对话框,对话框里面显示极验验证模块
注意:动态加载的方式只能使用异步请求的方式(因为目录主流浏览器不允许动态加载里面有document.write方法)
前端代码示例:
s = document.createElement('script');
s.src = 'http://api.geetest.com/get.php?callback=funname';
dom.appendChild(s)
同步和异步请求及执行
根据前端js的请求是否会阻塞页面 ,可以将请求静态文件分为同步请求和异步请求
同步请求
在前面的普通用户使用文档里面提到的调用方式是同步调用,同步调用使用比较简单,开发集成比较简单,推荐普通用户使用。
异步请求
异步请求具有如下的特点:
- 请求和加载js的时候,不会阻塞宿主页面
- 可以捕捉js加载完毕后的事件
- 可以控制初始化Geetest实例的时机
有高级需求的用户可以使用些方法。
和同步的请求不同,需要在api接口后面加上成功后的callback回调函数名称
具体示例代码如下:
<script async=true src="http://api.geetest.com/get.php?callback=funcname"></script>
即增加了callback参数,作为成功后的回调。
异步回调函数:
var funcname = function() {
new Geetest(config).appendTo(Dom);
}
单页面多验证实例
将不同的验证模块放在不同的表单里面。
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Custom Ajax</title>
<script type="text/javascript" src="http://api.geetest.com/get.php"></script>
</head>
<body>
<div style="height: 200px;"></div>
<form action="" id="form1">
<div id="captcha1"></div>
</form>
<form action="" id="form2">
<div id="captcha1"></div>
</form>
<script>
var captcha1 = new Geetest().appendTo('#captcha1')
var captcha2 = new Geetest().appendTo('#captcha2')
</script>
</body>
</html>
复杂弹出式模块
高端用户不建议使用popup形式,它自定义能力相对比较差,如果有弹出的需求,可以优先考虑自行设计和实现弹出层并调用浮动或者嵌入式更佳。
其原理为:
- 拷贝绑定的按钮
- 隐藏原按钮
- 点击新按钮弹出验证码
- 验证成功用js触发原按钮的点击
注意事项
- 用户有高级使用需求时,尽量使用官方提供接口
-
极验对产品升级时,会保证接口的兼容性
- 用户尽量减少对极验插件DOM依赖
-
极验升级产品时,不能保证DOM的不变性
常见问题
JSP页面的弹出式图片错位问题
问题描述:
使用Eclipse建立的默认的JSP页面的弹出式验证,在有些浏览器下面,例如IE8,会出现图片错位的情况。
解决方法:
使用如下的html文档头部
<!doctype html>
而不要使用默认的Eclipse模板的文档图
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
其它
(待续...)
移动Web
基本介绍
注意:本文档的API适用于在创建时,选择 “移动端”选项的验证模块,主要特点是在移动端使用canvas来实现,有更流畅的效果。
将下列当前验证专属代码放在网站页面的form表单合适的位置以显示验证模块。
添加引用源
<script async type="text/javascript" src="http://api.geetest.com/get.php?gt={{id}}"></script>
手机打开如下页面可以查看效果:
前端开发Demo
为了帮助前端开发人员快速理解使用方法,本项目提供了开发项目demo项目源码
git clone https://github.com/GeeTeam/gt-front-demo.git
更多详细内容请访问:Github页面
参考里面的: canvas-demo.1.0.0.html
前端API
刷新验证
GeeTest[0].refresh()
其中的数字N表示本页面的第N个实例。
验证回调
验证成功/失败的回调函数
window.gt_custom_ajax = function(result, id, message) {
//result 参数表示验证结果,有以下两种可能 True 或者 Flase
//id 参数表示验证码所在div的id,可定义验证码的位置
//message 参数表示此次验证的返回信息,有以下四种可能"Success", "Fail", "Abuse", "Forbidden"
if(result) {
//定义你要在验证成功或者失败时执行的代码。
}
}
验证后台处理
在拖动过程中会生成3个input值,将这三个input值传到后台,根据我们提供的SDK,做出相应的处理
window.gt_custom_ajax = function(result, id, message) {
if(result) {
value = $('#' + id).find('input');
$.ajax({
type:'POST',
url:'XXX',
data:{"geetest_challenge":value[0],"geetest_validate":value[1],"geetest_seccode":value[2]},
success:function(){
};
})
}
}
黑名单机型排除
因为某些手机的本地浏览器更改较大,导致不能支持canvas特性,故做了相应的黑名单备选方案。对于黑名单手机,会推送普通web版的验证,回调接口会有所不同。已经统一在js上做了兼容,用户不用刻意再修改前端代码
目前已知的不支持canvas特性的手机有:
- 魅族MX3系列的(老版本Flyme不支持),UA关键字:M3
- 三星,UA关键字:GT-I9500
- 其它后续持续增加中
友情提示
为保证设计的美观性,尽量选择弹出式验证码
iOS应用
适配机型
平台分类:
- armv7及armv7以上
- arm64
枚举机型:
-
armv6 设备: iPhone, iPhone2, iPhone3G, 第一代、第二代 iPod Touch
- armv7 设备: iPhone3GS, iPhone4, iPhone4S
-
iPad, iPad2, iPad3(The New iPad), iPad mini
iPod Touch 3G, iPod Touch4
-
armv7s设备: iPhone5, iPhone5C, iPad4(iPad with Retina Display)
-
arm64 设备: iPhone5S, iPad Air, iPad mini2(iPad mini with Retina Display)
1
Discuz
安装插件
- 在插件中心搜索极验验证
-
一键安装
- 2.手动安装
- 压缩包下载地址 https://github.com/GeeTeam/gt-discuz-x2.5-x3.2/ ,下载压缩包后解压并更改文件夹的名字为geetest ,放在网站根目录/source/plugin/ 下
常见问题
问题1
id和key无法更改,或为空
解决方法:问题原因及解决方法:可能的原因是服务器权限不够,登陆服务器查看`网站根目录/source/plugin/geetest/lib/config.php`文件,ID和KEY 是否为null,若为空,手动写进config.php文件。
return array (
'keyset' =>
array (
'captchaid' => '{{id}}',
'privatekey' => ''{{key}}',
),
'mobile' =>
array (
'captchaid' => '{{id}}',
'privatekey' => ''{{key}}',
),
);
注意:pc 版的id和key与手机版的id和key不能弄混淆
问题2
后台填写id和key时,提示 id type error
解决方法:id 和 key 类型不对,web版的id和key只能填写web版的id和key,移动版的只能填写移动版的id和key
问题3
开启了指定模块的验证,但验证条和滑动验证码几个字都无法显示
解决方法:可能是模板没有插件嵌入点,建议换成discuz默认模板。
问题4
双重验证模块显示,既有极验验证,又有discuz自带验证模块
解决方法:到管理后台下的防灌水->验证模块设置中去关闭您想关闭的验证模块
问题5
pc版的验证能用,移动版的验证无法使用
解决方法:1.检查id和key是否是移动版的id和key,pc版的id和key不能在移动版上使用;2.是否是默认模板,某些模板不兼容;3.pc版的验证只支持触屏版,不支持标准版
问题6
报错:Could not open socket!
解决方法:服务器的php配置中关闭了PHP.ini 中 allow_url_fopen选项,联系空间商,或者自己手动去开启
手机版使用方法及说明
- 在discuz插件后台中的极验插件设置中,手机版的ID和KEY必须在account.geetest.com申请,且注意选择ID类型为移动端。PC端和移动端的ID不通用。
- 如果您是老用户(即您之前使用geetest的文件覆盖过discuz的手机模板),如遇到插件验证码无法弹出,手机版的ID和KEY也正常无误,将 /template/default文件夹 替换成原生的discuz文件,即可解决问题。
- 优化的手机版大大提高了对手机模板的兼容性,如果模板开发者完全按照模板的规则开发,插件是兼容的,若遇不兼容,建议替换成discuz原生模板。
- 手机版极验验证针对移动端特点极大的改善了用户体验,使用更加便捷、炫酷、保障网站安全,建议站长们及时开启。
Phpwind
安装插件
Phpwind版本分为 V8.5, V8.7,V9.0 ,语言包分为GBK和UTF8 由于v8.5、V8.7和 V9.0 插件机制不同,请选择适合您网站的包下载
V8.5 和V8.7安装
- 将安装包中的login.php 、post.php、read.php、register.php、这四个文件覆盖到网站根目录下
- 将安装包中的template/wind 下的fastpost.htm、 login.htm、 post.htm、 register.htm中的这四个文件覆盖到网站的template/wind目录下
- 将geetest文件放到upload/hack目录下
- 登陆您的网站,在插件列表中即可看到geetest插件
V9.0安装
- 将安装包复制到upload/src/extensions 下面
- 在插件列表中,安装插件即可
参数配置
将您的验证模块专属id:{{id}}和key:{{key}}填写到插件配置的相应位置
1
业务相关问题
关于极验验证
极验验证解决了什么问题?
彻底改变传统“码式验证”技术仅基于图灵理论的单一防护构架。使用“行为式验证”安全技术,首创行为沙盒及多重行为判别算法,从特征、视觉、思考等多重行为信息中辨识生物个体特征,区分人机,安全性全面提升44.78倍以上。 与此同时,将验证效率全面提升近300%,平均用户通过行为式验证的时间仅为2.73秒,不到传统码式验证五分之一的时间,缩短验证时间达70%以上。
哪些地方适合使用极验验证?
极验验证可用于涉及到人机交互的任何模块,包括注册登录、留言、评论、发帖、投票、下载等。
原始码式验证为什么不安全?
原始码式验证的验证安全思想是基于“图灵测试”,建立在“人类可以理解图像的意义,但是计算机程序无法理解图片的意义”的前提条件下产生。但随着计 算机技术特别是人工智能、机器学习等技术的不断发展,此类验证码非常容易遭到暴力破解、穷举破解、建立映射表和图像识别等方法的破解。 码式验证的问题在于最终的判别只是简单的答案比对过程,所以从计算机程序的角度出发,只要能找到这个答案就可以进行破解,而找到验证码的答案对于验证破解 者来说是有思路可循的,实现也相当简单,因此如今码式验证可谓形同虚设了。
极验验证为什么安全?
极验验证不再仅通过图灵理论,而是通过多重行为特征来区分人机,利用“行为式验证”彻底改变传统“码式验证”技术的单一防护构架。 基于行为式验证的理论基础,极验验证在全面考虑验证技术原理后,提出全新的验证安全框架,从根本上颠覆了第一代验证的理论基础,将人工智能、机器学习等技 术与验证的安全紧密结合,达到一个全新的高度。主要采用“多重异构”、 “动态更新”、“黑盒隐藏”三点安全策略,从根本上保障网站的安全。
什么是行为式验证?
行为式验证技术核心思想是利用用户的“行为特征”来做验证安全判别。整个验证框架采用高效的“行为沙盒”主动框架,这个框架会引导用户在“行为沙 盒”内产生特定的行为数据,利用“多重复合行为判别”算法从特征、视觉、思考等多重行为信息中辨识出生物个体特征,从而准确快速的提供验证结果。 每个人在页面进行验证时的行为习惯都是独一无二的。通过机器学习,我们能够建立起人类的多维度行为模型,称为行为判别模型。将用户当前操作所产生的行为特 征与模型进行匹配,可以准确地识别出用户是人还是机器。
使用极验验证需要收费吗?
安装使用极验验证基本验证服务不需要付费,为满足更高级的用户需求,我们会提供一些可选择的增值服务并收取一定费用。
如何安装部署极验验证到网站?
您可以访问极验验证官方网站的安装中心,也可以注册登录我们的验证管理平台,根据安装向导提示选择网站类型在相应的网页中嵌入代码,或直接安装使用 极验验证的discuz插件等。任何建站系统及语言都能在三分钟内快速方便的安装极验验证。如果有任何安装问题都可以随时咨询客服。
什么是gt-ultimate?适用什么情况?
gtULTIMATE是采用新一代行为式验证技术的企业验证安全产品。主要针对于政府、银行等特殊企业的验证安全需求。产品为企业独立部署,具有实时监控、安全报警等功能,是各大企业站点的首选。
极验验证会收集用户信息吗?
一些验证基本信息数据将有所反馈,用于不断完善更新我们的产品,服务于用户。与此同时,极验验证也将自觉维护用户利益,承诺对用户使用极验验证所产生的数据严格保密,在未得到用户事先许可的情况下不披露给任何人士或机构。如有疑问,可以联系客户人员索要相关的技术白皮书。
管理极验验证
三种验证交互样式有什么区别,如何选择?
三种验证交互样式没有功能上的区别,您可以根据您的个人需要、网页排版等选择具体交互样式。
自定义验证图片需要满足什么条件,有何规范?
自定义上传验证图片必须符合《极验验证用户使用协议》相关规定,不接受任何非法、有害、胁迫、骚扰、侵权、中伤、粗俗、猥亵、诽谤、淫秽、暴力、侵害他人隐私、种族歧视或其他令人不快的照片、图形、信息等;同时,不允许发布站外广告。 图片规格为:260px*116px,30KB以内,接受png、jpg格式。
自定义图片为什么需要审核?审核需要多久?
为了防止违法内容、站外广告等发布,需要进行简单的人工审核和处理。工作日审核等待时间在24小时以内,节假日在48小时以内。
自定义图片链接可以放广告吗?
可以放本网站站内广告。
为什么我已启用自定义图片,但验证时还是其他图片呢?
请您排查以下两种情况:
1.自定义图片还未通过审核,请耐心等待; 2.在启用自定义图片的同时未关闭其他图片的启用。 3.可能开启了广告,开启广告默认关闭其他验证图片,可以重新手动开启其他图片。
可以自定义修改验证界面吗?
极验验证在进行版本维护时,会不断优化前端布局方式。如果您擅自进行修改,将会导致界面错乱,影响使用。如果发现有擅自进行修改的网站,将会停止合作。极验验证提供验证界面的定制服务,并将经过严格测试后上线,如果需要相关服务可联系在线客服。
极验验证广告推送服务的内容是什么?如何开启?
极验验证新型广告形式将验证图片素材替换成广告展示图,无需占用其他的位置,不损害页面排版和美观。开启广告服务后,将验证流量变现,根据广告效果为网站带来可观的利益分成,增加广告收入。 开启广告服务具体步骤:
1.进入后台管理界面点击需要启用广告的验证设置按钮。 2.是否启用广告选项勾选启用。
极验验证广告推送服务如何结算?
现阶段,极验验证广告暂处于测试阶段,所有广告相关数据将保留。具体结算事宜等正式上线后会出具相应的规则,敬请期待。
什么是G币?1G币等于多少人民币?
G币为极意网络推出的一种虚拟货币,可以用来支付验证图片服务、去标识等增值服务。 G币通过验证管理平台直接充值,可以通过支付宝及各大银行网银进行支付。 价格为1G币=1元。
充值G币能否开发票吗?
可以。完善公司或个人相关财务信息,信息审核通过后在充值G币时可勾选开具发票。 我们将提供电子版发票作为报销凭证,如需发票原件可另付快递费用邮寄。
账户G币余额可以提现吗?
账户G币余额分两种情况:
1.不可提现余额:用户自行充值所得G币将不支持提现。 2.可提现余额:极验验证奖励用户、用户赚取推广佣金、用户验证广告佣金所得将支持提现。
为什么需要绑定财务信息?
确保用户账户安全,方便企业和个人管理账户财务。
验证数据解释
什么是验证量?
验证量指用户在极验验证上进行拖动操作的总次数。一次拖动即算一次量,无论正确与否。
什么是成功验证?
正确验证指用户正确拼合验证拼图通过验证。
什么是失败验证?
失败验证指用户未能成功拼合拼图导致验证失败;或因为机器注册等原因验证不通过。
技术相关问题
我现在下属分站较多,能否实现ID不和域名挂钩。多个域名均可使用?
可以。ID域名目前没有限制
极验验证服务稳定吗?如果极验验证服务宕机怎么办?
目前极验验证的稳定性是值得依赖的,主要从如下几个方面体现:
- 基础设施
-
使用专业的IAAS服务商,可以确保服务7×24小时无故障运行
- 服务构架
-
有多台机器做集群和多层备用
- 用户考验
-
目前极验服务器每天支持高达上亿次请求,维持整体验证体系的正常运转
宕机怎么办: 极验服务器一般情况下可以完全满足客户的稳定性需求,但是有时会因为一些不可抗拒的因素而导致服务器宕机,极验也能保证客户的验证系统能够正常运行。 极验在SDK中提供了failback自动恢复机制,在极验服务器down机的情况下,用户可以启用本地验证码。
什么是fallback机制?怎么使用?
极验提供fallback的API,使用此API后,网站的验证模块能在极验服务与本地验证码中智能切换,若极验服务出现任何问题,网站验证模块会暂时自动切换到本地验证码,确保网站验证模块的在此期间的持续运行。
作为云服务,如果带宽被其他网站抢占,会对我的验证服务造成影响吗?
不会。目前极验服务器的网络带宽一直是随着业务规模而与时俱进的。能够在保证用户的正常加载的速度和稳定性要求。
极验验证是否支持移动端?
目前极验的验证服务除了支持PC的Web平台外,还对移动端的WebView应用和移动端的Web页面进行了良好的适配。 不影响移动端的用户体验。
如何在提交表单后自动刷新验证码?
极验验证提供了前端的js的API供前端人员做一些界面上的自定义控制。
ajax提交的表单怎样添加验证码?
极验验证提供了前端的js的API供前端人员做一些界面上的自定义控制。
能不能在同一个页面上添加多个验证码?
可以。将不同的验证模块放在不同的表单里面。在同一个页面调用两个验证选择器判断,以下是调用两个验证选择器的例子:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Custom Ajax</title>
<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
</head>
<body>
<div style="height: 200px;"></div>
<form action="" id="form1">
<script type="text/javascript" src="http://api.geetest.com/get.php?gt=421b84eeaee7b2aed4c0ec5706d8b571" async></script>
</form>
<form action="" id="form2">
<script type="text/javascript" src="http://api.geetest.com/get.php?gt=421b84eeaee7b2aed4c0ec5706d8b571&random=2"
async></script>
</form>
<script>
window.gt_custom_ajax = function(result, selector) {
if($("#form1").find(selector(".gt_input_holder")).length) {
console.log('form 1');
//do things if is in form 1
}
else {
console.log('form 2');
//do things if is in form 2
}
}
</script>
</body>
</html>
为什么会被判定为机器人?
验证码在互联网上出现的初衷就是为了区分人和机器,以防止机器人恶意行为。极验验证则通过收集用户在验证过程中的一些行为数据,然后在后台提取相关的特征,以达到对机器人和人的区分。如果一次验证行为的特征表现得和机器人比较类似,则会检验后台为将其判定为机器人。 经统计,极验验证误判机率维持在0.5%~3.0% 。
安装极验验证后会获得网站哪些数据?
目前的极验验证的基础版本只对如下数据进行了收集:
- 当前网站的网址。
- 本次验证拖动时用户的轨迹。
- 本次验证时所处的浏览器平台
- 本次拖动时用户的IP及验证时间
不会对网站的隐私信息进行任何侵犯。
浏览器兼容性表现如何?
极验的核心验证模块在每个版本发布前,在如下平台:
- PC平台下的IE6~11,Chrome,Firefox,Opera及主流的IE内核三方浏览器
- 移动平台的UC,QQ浏览器,Opera,Firefox
进行严格测试,确保验证核心功能在各平台下的兼容性
JS 是否可以放到客户服务器上
放在我们极验的服务器上,JS和CSS可以进行统一升级和维护;如果遇到爆发新的机器人攻击的情况,我们也可以及时的进行升级和维护。但是如果放在您的服务器,会增加沟通成本,响应速度会受到很大的影响。 若需要私有服务,可以联系极验的客服,极验会派技术人员提供专门的订制化服务。
添加验证时填写验证网址需要精确到目录吗?
不需要,此处网址填写只做登记记录使用。
如何部署私有云?
由于部署私有云是属于订制化的服务,会额外收取相应的项目费用。 如果费用方面能够达成一致,则通过如下流程可以处理此类事宜:
- 联系极验的客服,然后极验派技术人员专门提供订制化的服务。
- 用户提供需求,并购置服务器。
- 极验提供相应的工程项目及部署服务。
- 让整套系统在甲方的私有云上运行。
- 后期极验提供相应的服务器升级服务。
服务宕机failback机制
极验服务器情况下可以完全满足客户的稳定性需求,但是有时会因为一些不可抗拒的因素而导致服务器宕机,极验也能保证客户的验证系统能够正常运行。 极验在SDK中提供了failback自动恢复机制,在极验服务器down机的情况下,用户可以启用本地验证码。
验证事件有效性注册机制是什么?
为了防止黑客跨页面破解验证模块,升级版SDK提供了验证事件有效性注册机制,确保每次验证事件的生成都来自可信的网站主服务器
极验验证最大并发请求量是多少?
目前可以支撑数万并发,完全可以支撑现有的用户需求
验证图片是每次随机生成 还是说是一个可以遍历穷举的库?是否很容易破解?
-
验证的图片有通过加密方式,提高图片获取难度。并且图片都是提前随机生成上传到cdn服务器上的。
- gtWeb模块验证是存在双重认证的
-
第一重:图像匹配和吻合
- 第二重:根据鼠标动力学和对人机交互轨迹特征进行的行为特征提取和鉴别来区分
-
这是我们的行为式验证的核心,详细想了解的可以看我们的“行为式验证技术白皮书”
-
两者结合起来之后,完全可以区分人和机器人,从而将目前存在的机器人防住。 在后续的验证安全的研究中,我们会进一步对图像进行一定的混淆,进一步提升破解的门槛和难度,以迎接未来更多的未知的挑战。
如何应对人工打码的问题?
- 失效控制。
-
我们的验证模块在生成一次验证事件后,如果在一定的时间内没有被交互验证,那么会自动失效。这样的 后果是:人工打码的成本会很高,比如,如果设置失效时间为30秒,那么聘请10个人,30秒内最多只能打300个码(而且如果没有立刻使用,就会立刻衰减 失效),除非是极其有经济价值的内容,一般情况下这个投入回报比是不划算的。
- referer绑定控制。
-
人工打码肯定要自建页面,那么它的页面和id在极验后台绑定的referer不一致,我们也判定为验证不通过。referer绑定需要用户自己在验证管理平台自行设置。
如果想内测,需要怎么操作呢?
- 先在极验后台注册一个账号
- 然后按照提示在账号中创建一个验证码
- 然后会有安装提示,按照安装步骤提示安装就OK了。
前端验证通过但后端验证不通过?
请您确认一下,您的ID/KEY是否是后面自己申请的验证模块而不是使用的Demo提供的。
安卓的SDK可以使用么?
WebView App
目前我们的产品做了移动端的浏览器的适配工作,可以正常使。 目前对移动端提出的解决方案是:您的web页面中引入极验的代码,然后您的app中的webview 在加载您的页面时,顺便加载了极验的web代码, 然后后续的操作就是在手机上对页面的操作了。
为什么某些https网站无法加载验证?如何解决?
有些网站的Https页面无法加载验证模块。 请从如下两方面检查一下您的页面:
您的Https页面是否引用了Http的资源
- 低版本的IE会先弹出提示框,需要用户确认后才能加载。
- 在Chrome高版本里面,会直接屏蔽掉Http资源
基于以上事实,会因为如下两个原因导致验证模块无法加载:
1. 您Https页面引用的极验的前端api是基于Http的,导致浏览器直接无法显示。 2.您加载了其它Https的资源被屏蔽,而极验的模块是等待浏览器全部元素加载完毕后才会加载。
其它https可能无法加载的情况
- 去掉前端src中的 defer关键字。如果不去掉,在IE<=9的时候,会有一定的概率加载不出https的情况。
- 避免使用‘//’的相对路径来引用前端api。否则在360浏览器里面有时将此路径解析不到https的模式。
- 如果还出现问题,可以自己写js来异步加载api。@zcx
前端收集了哪些数据?
- challenge:后台生成的一个验证流水
- userreponse:交互的位置经过加密后的结果
- passtime:从鼠标点击开始,到完成验证结束之后时间差
- imgload:验证图片加载的时间
- b:内部保留字段
- random:随机参数
- a:压缩编码后的轨迹
不会对网站的隐私信息有任何侵犯。 极验验证为了更好地执行验证安全,不排除以后会收集更多信息的可能性。如果收集信息有变更,将会用过邮件方式告知用户。
1
1
xxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxx
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/5035666.html
未经授权禁止转载,违者必究!