网站接入Web应用防火墙后,您可以为其开启数据风控功能。数据风控帮助防御网站关键业务(例如注册、登录、活动、论坛)中可能发生的机器爬虫欺诈行为。您可以根据实际需求设置数据风控的防护策略。

前提条件

说明 本文介绍的数据风控功能对应2020年1月发布的新版控制台界面,新版界面目前仅向中国大陆地域开放。如果您使用在此日期前开通的Web应用防火墙实例或海外地区服务,请参见数据风控
  • Web应用防火墙实例的地域必须是中国大陆。
  • Web应用防火墙实例的规格必须满足以下条件。
    • 包年包月开通的Web应用防火墙实例,实例套餐必须是企业版及以上规格。更多信息,请参见WAF各版本功能说明
    • 按量付费开通的Web应用防火墙实例,必须在功能与规格设置中开启数据风控,才能使用数据风控。更多信息,请参见功能与规格配置(按量付费模式)
  • 已完成网站接入。更多信息,请参见业务接入WAF配置

背景信息

数据风控基于阿里云的大数据能力,通过业内领先的风险决策引擎,结合人机识别技术,防止各类场景的关键业务欺诈行为。您只需将业务接入Web应用防火墙即可使用数据风控功能,轻松获取风控能力,且无需在服务器或客户端进行任何改造。

数据风控支持防护的场景包括但不限于以下内容:垃圾注册、短信验证码滥刷、撞库、暴力破解、恶意抢购、秒杀、薅羊毛、抢红包、机器人抢票、刷票、恶意投票、垃圾消息。

下图描述了数据风控的工作流程。关于接入数据风控的应用场景示例和实际效果,请参见数据风控应用示例

数据风控,工作流程

兼容性说明

数据风控仅适用于网页/H5环境。在某些情况下,可能存在页面中插入的用于安全防护的JS插件与原页面不兼容的问题,导致数据风控的滑块验证功能出现异常。目前,常见的存在不兼容问题的页面包括:

  • 访问者可以直接通过URL地址访问的静态页面,例如各种通过HTML直接展示数据的详情页/分享页、网站首页、文档页等,页面跳转方式为直接修改location.href和使用window.open、a标签的页面。
  • 业务代码重写页面的请求发送方法或自定义请求提交,例如重写表单提交、重写XHR、自定义ajax提交等情况。
  • 业务代码中存在hook相关请求提交的情况。

解决方案

建议您在接入数据风控功能初期,选用预警模式并结合Web应用防火墙的实时日志分析服务进行兼容性和效果测试。更多信息,请参见概述

如果发现存在不兼容的情况,您可以使用人机验证服务配合Web应用防火墙一起实现防护。

关于原生App业务的防护,建议您使用爬虫风险管理提供的App增强防护SDK方案。更多信息,请参见方案概述

操作步骤

  1. 登录Web应用防火墙控制台
  2. 在页面上方选择中国大陆地域。
  3. 在左侧导航栏,单击防护配置 > 网站防护
  4. 网站防护页面上方,切换到要设置的域名。切换域名
  5. 定位到数据安全下的数据风控,完成以下功能配置,并单击前去配置
    配置项 说明
    状态 开启或关闭数据风控。开启数据风控后,Web应用防火墙默认将在网站所有(或指定的)页面中插入JS插件用于安全防护,页面响应内容将以非gzip压缩方式进行传输。即使您的网站配置使用非标端口访问,也无需添加额外配置。
    说明 必须先开启数据风控,才能调整防护模式和设置防护规则。
    模式 数据风控的防护模式。可选值:
    • 强拦截:识别到业务攻击时,用户将被重定向至验证页面进行严格的二次验证。
    • 拦截:识别到业务攻击时,用户将被重定向至验证页面进行二次验证。
    • 告警:识别到业务攻击时,只记录风险日志、不进行拦截,可通过业务风控报表查看详细风险情况。
      说明 默认使用预警模式,数据风控不会对任何请求进行拦截,但依然会在静态页面中插入JS脚本分析客户端行为。
    数据风控
    进入数据风控配置页面。
  6. 添加数据风控防护请求。
    1. 防护请求页签下,单击新增防护请求
    2. 新增防护请求对话框,输入防护请求URL
      更多信息,请参见什么是防护请求URL新增防护请求
    3. 单击确认
    防护请求添加成功后,10分钟左右生效。
  7. 可选: 指定JS插入页面。
    由于部分页面前端代码与数据风控的JavaScript脚本可能存在兼容性问题。如果遇到此类问题,建议您通过指定页面插入JS功能仅添加部分页面进行安全防护。
    说明 仅在部分页面插入JS插件时,数据风控将可能无法获取完整的用户访问行为,并对最终的防护效果产生影响。

    使用限制:最多支持指定20个页面地址。

    1. 单击JS插入页面页签。
    2. JS插入页面页签下,选中指定页面插入JS
      页面显示URL列表。指定页面插入JS
    3. 单击添加页面
    4. 添加URL对话框中,输入要插入JS的页面的地址(以“/”开头),并单击确认添加URL
    数据风控将仅在您所添加的URL路径下的页面中插入JS插件。

开启数据风控后,您可以使用Web应用防火墙的全量日志功能查看防护结果。关于日志示例,请参见查看防护结果

什么是防护请求URL

防护请求URL指执行业务动作的接口地址,而不是页面本身的URL地址。例如,下图所示注册页面本身的URL地址为www.abc.com/new_user,获取验证码按钮对应的业务接口地址是www.abc.com/getsmscode,注册按钮对应的业务接口地址是www.abc.com/register.do注册页面

这种情况下,您应该为获取验证码按钮的接口地址www.abc.com/getsmscode和注册按钮对应的接口地址www.abc.com/register.do分别添加防护请求,并设置为防护请求URL,防止验证码的短信接口被刷和垃圾注册风险。如果将注册页面地址www.abc.com/new_user设置为防护请求URL,当正常用户访问该页面时也将收到滑块验证提示,影响用户体验。

防护请求URL注意事项
  • 防护请求URL必须精确到实际请求URL,不支持模糊匹配。

    例如,将www.test.com/test设置为防护请求URL,则数据风控只匹配test路径的访问请求,不会匹配test路径下所有页面的访问请求。

  • 数据风控支持对网页目录进行防护。

    例如,您将防护请求URL设置为www.abc.com/book/*,即可对www.abc.com/book路径下所有页面的请求实现数据风控防护。但是,不建议您为全站配置防护。假如设置www.abc.com/*为防护请求URL,将导致用户访问网站首页时也需要通过滑块验证,影响用户体验。

  • 直接请求数据风控已防护的URL一定会触发滑块验证。因此,请确保所配置的防护请求URL在正常情况下不会被用户直接请求,即正常用户通常需要经过一系列的前置访问后才会请求该URL地址。
  • 直接调用API接口的场景不适合使用数据风控进行防护。由于API调用是直接发起的机器行为,无法通过数据风控的人机识别验证。但是,对于正常用户单击页面中的某按钮调用API接口的情况,可以通过数据风控功能进行防护。

查看防护结果

您可以使用Web应用防火墙的全量日志查询功能来排查数据风控的监控和拦截情况。

  • 正常示例

    下图中的日志表示通过数据风控验证的请求。正常用户经过数据风控验证的访问请求URL将包含一个以ua开头的参数,请求会被Web应用防火墙转发回源站,源站服务器正常响应该请求。

    日志,数据风控,通过
  • 异常示例

    下图中的日志表示被数据风控拦截的请求。如果直接请求业务接口URL,一般不会包含以ua开头的参数(或带有伪造的ua参数),这类请求将被Web应用防火墙拦截,且请求日志中无源站响应信息。

    日志,数据风控,拦截

开启全量日志后,在高级搜索 > URL关键字中配置启用数据风控的接口,可以排查数据风控的监控和拦截情况。更多信息,请参见全量日志查询

数据风控应用示例

阿里云用户小白在互联网上搭建网站业务,网站域名是www.abc.com,普通用户可以通过www.abc.com/register.html注册成为网站会员。近来,小白发现存在黑客通过一些恶意脚步频繁提交注册请求,并注册大量垃圾账户来参与网站的抽奖活动。所提交的请求与正常用户请求相似度很高,且请求频率不高,传统的CC攻击防护功能难以分辨出这些恶意请求。

配置示例

小白将网站业务接入Web应用防火墙并为www.abc.com域名开启数据风控功能。小白当前最关心的注册业务的请求URL是www.abc.com/register.html,因此将该URL设置为防护请求URL。

防护效果

防护配置生效后,数据风控通过在所有页面中插入的JS插件,观察并分析每一个访问www.abc.com网站域名(包括首页及其子路径)的用户的各种行为,判断是否存在异常。同时,结合阿里云的大数据信誉库判断访问源IP是否存在风险。

当用户向www.abc.com/register.html地址提交注册请求时,Web应用防火墙将基于该用户自开始访问该网站,到提交注册请求间的所有行为和征信特征来判断用户是否可疑。例如,如果用户没有任何前置操作直接提交注册请求,则可基本判断该请求为可疑请求。
  • 如果基于之前的行为,数据风控判断该请求来自正常用户,则该用户在注册过程中将无任何感知。
  • 当数据风控判断该请求为可疑请求,或者该访问源IP曾有不良记录,将通过滑块验证的方式验证用户身份。只有通过验证的用户,才能继续进行注册。安全验证
    • 如果通过滑块验证方式可疑(例如,使用脚本模仿真人滑动过程等),数据风控将继续通过其它方式再次进行验证,直到验证通过且通过方式可信。
    • 如果无法通过验证,数据风控将阻断该请求。

整个过程中,由于数据风控是针对整个网站域名(www.abc.com)开启的,数据风控需要对该域名下的所有页面插入JS插件来判断用户行为是否可信。而真正的防护和验证,仅针对www.abc.com/register.html注册接口URL生效,只有在提交注册请求时数据风控才会对请求进行干涉。