滑动验证(No-Captcha,简称NC),是阿里巴巴集团打破传统验证码技术推出的最新人机识别服务。阿里云的滑动验证采用先进的风险分析引擎来区分来自人类与机器人的访问行为。用户通过类似滑动解锁的方式来通过人机验证,对用户来说无需思考即可通过人机识别(图灵测试)的挑战。

下图是滑动验证在用户客户端的展示效果。

功能原理

滑动验证服务通过以下逻辑实现人机验证。

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

    说明
    • 在集成滑块验证接入代码时,appkey与scene参数值必须按照控制台中相应验证配置分配的值填写,且前端与服务端保持一致。
    • 测试不同前端样式时,可以使用前端代码集成文档中提供的测试参数(appkey+scene)。测试完成后请务必还原appkey与scene参数值,切勿在实际线上环境中使用测试参数。
  2. 用户在客户端(网页)中,将滑块滑动至末端。滑块组件代码自动触发,向阿里云服务器发送验证请求,判断此次操作行为是否正常。

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

    验证结果如下:
    • 滑动验证成功:在客户端NC_Opt对象的callback参数中,获得验证请求的回调结果。
    • 滑动验证失败:客户端提示验证失败,并提示用户重新进行滑动验证。
  4. 客户端将收到的验签所需参数信息(param)与应用业务请求(如登录、注册)一同发送至应用服务端(该部分需要根据自身业务逻辑进行开发)。
    说明 验签所需的参数信息包括nc_tokendata.csessioniddata.sig。除验签所需参数信息外,建议您将该滑块配置的appkey和scene参数值一同发送至应用服务端,便于服务端支持多套人机验证配置针对不同场景的使用。
  5. 应用服务端调用afs验签接口,向阿里云服务器发送请求,判断所收到的验签信息是否有效。

    • 对于JAVA、.NET、PHP、Python开发语言,您可以通过SDK使用已封装的验签方法。
    • 对于其它语言,您可以通过HTTP形式直接调用验签接口。
  6. 阿里云服务器收到验签请求,实时判断验签是否合法且有效。

    说明
    • 为了避免被恶意攻击者通过积攒sig的方式进行批量攻击,验签接口参数的有效时间为10分钟。
    • 为了避免被恶意攻击者进行大量重放攻击,验签接口参数的有效次数为1次,即一条验签请求只在首次验签时返回验签成功结果。
  7. 应用服务端收到验签结果,结合应用业务逻辑进行处理。

    • 返回code为100,表示验签成功。
    • 返回code为900,表示验签失败。
  8. 应用客户端收到最终验证结果,根据业务逻辑继续执行后续业务。

快速入门

您可以通过以下方式在业务中接入滑动验证服务。
说明 滑动验证服务仅支持PC网页(PC端Web页面)和**H5(移动端WAP + APP)**业务应用类型。
  1. 登录云盾人机验证控制台,在人机验证页面,选择配置管理页签。

  2. 单击新增配置
    说明 如果您已经为需要接入滑动验证的场景创建过滑动验证配置,您可以直接使用已创建的配置和接入代码。

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

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

  3. 单击下一步
    说明 配置项一旦创建即写入线上配置,不可修改且无法删除,请您谨慎配置。
  4. 系统代码集成&测试页面,妥善保存系统为您自动生成的前端和服务端的功能接入代码。

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

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

更多功能

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

  • 自定义样式:您可以在人机验证控制台的配置管理页签,单击自定义样式,设置您喜欢的滑动验证组件样式。详细内容请参见自定义前端样式

  • 数据监控:您可以在人机验证控制台的数据监控页签,查看人机验证的总览数据。详细内容请参见查看数据监控