功能概述

更新时间:

智能验证是阿里巴巴集团提供的一种验证码解决方案。对大部分用户来说,只需一次交互即可完成验证码操作。智能验证采用风险分析引擎,可以有效区分来自人类与机器人的访问行为并拦截机器风险,为您提供安全可靠的业务环境。

智能验证流程

智能验证服务通过以下逻辑实现验证码。

  1. 在您的应用客户端(网页)和服务端中分别集成智能验证功能接入代码后,在指定的客户端页面中唤醒智能验证组件。

    说明
    • 在集成智能验证接入代码时,appkey与scene参数值必须按照控制台中相应验证配置分配的值填写,且前端与服务端保持一致。

    • 测试不同前端样式时,可以使用前端代码集成文档中提供的测试参数(appkey+scene)。测试完成后请务必还原appkey与scene参数值,切勿在实际线上环境中使用测试参数。

  2. 用户在客户端(网页)中,单击智能验证按钮。智能验证组件代码自动触发,向阿里云服务器发送验证请求,判断此次操作行为是否正常。

  3. 阿里云服务器利用风控技术,判断验证请求的合法性并将结果返回至应用客户端。

    请求结果如下:

    • 智能验证直接通过:自动触发smartCaptcha对象中的success回调参数,获得验证请求的回调结果(验签参数)。

    • 智能验证直接失败:客户端提示验证失败,并提示用户重新单击智能验证按钮。

    • 智能验证未通过并触发二次验证:客户端自动唤醒二次验证(滑动验证)。

    说明

    图中绿色部分流程说明了触发二次验证的完整流程。

    3a. 触发二次验证后,用户在客户端中根据提示将滑块滑动至末端。

    3b. 阿里云服务器利用风控技术,判断验证请求的合法性并将结果返回至应用客户端。

    • 滑动验证成功:与智能验证直接通过的情况相同,自动触发success回调参数,获得与智能验证请求等价的回调结果(验签参数)。

    • 滑动验证失败:客户端提示验证失败,并提示用户重新进行滑动验证。

  4. 客户端将收到的验签所需参数信息(param)与应用业务请求(如登录、注册)一同发送至应用服务端(该部分需要根据自身业务逻辑进行开发)。

    说明

    验签所需的参数信息包括NVC_Opt.tokendata.csessioniddata.sig。除验签所需参数信息外,建议您将该智能验证配置的appkeyscene参数值一同发送至应用服务端,便于服务端支持多套验证码配置针对不同场景的使用。

  5. 应用服务端调用afs验签接口,向阿里云服务器发送请求,判断所收到的验签信息是否有效。

    说明

    对于JAVA、.NET、PHP、Python开发语言,您可以通过SDK使用已封装的验签方法;对于其它语言,您可以通过HTTP形式直接调用验签接口。

  6. 阿里云服务器收到验签请求,实时判断验签是否合法且有效。

    说明
    • 为了避免被恶意攻击者通过积攒sig的方式进行批量攻击,验签接口参数的有效时间为10分钟。

    • 为了避免被恶意攻击者进行大量重放攻击,验签接口参数的有效次数为1次,即一条验签请求只在首次验签时返回验签成功结果。

  7. 应用服务端收到验签结果,结合应用业务逻辑进行处理。

    • 返回code为100,表示验签成功。

    • 返回code为900,表示验签失败。

  8. 应用客户端收到最终验证结果,根据业务逻辑继续执行后续业务。

快速入门

您可以通过以下方式在业务中接入智能验证服务。

说明

智能验证服务仅支持PC网页H5(移动端WAP+APP)业务类型。

  1. 登录阿里云验证码控制台,在错误码页面,选择配置管理页签。

    验证码
  2. 单击新增配置

    说明

    如果您已经为需要接入智能验证的业务场景创建过智能验证配置,您可以直接使用已创建的配置和接入代码。

    根据您的实际业务情况,设置配置名称高峰期QPS使用场景业务类型,并在验证方式项选择智能验证

    说明

    其中,高峰期QPS指您业务峰值期间每秒的页面访问次数。

  3. 单击下一步

    说明

    配置项一旦创建即写入线上配置,不可修改和删除,请您谨慎配置。

  4. 系统代码集成&测试页面,妥善保存系统为您自动生成的前端和服务端的功能接入代码。

  5. 在您的业务前端页面和服务端中分别集成阿里云验证码提供的前端和服务端功能接入代码。

配置接入完成后,即可在您的业务中使用阿里云的最新人机识别技术实现验证码。

更多功能

将智能验证服务接入业务后,您还可以使用以下功能: