网站接入Web应用防火墙(Web Application Firewall,简称WAF)后,您可以为其开启数据风控功能。数据风控帮助防御网站关键业务(例如注册、登录、活动、论坛)中可能发生的机器爬虫欺诈行为。本文介绍如何设置数据风控的防护策略。
背景信息
数据风控基于阿里云的大数据能力,通过风险决策引擎,结合人机识别技术,防止各类场景的关键业务欺诈行为。您只需将业务接入WAF即可使用数据风控功能,且无需在服务器或客户端进行任何改造。
数据风控支持防护的场景包括但不限于以下内容:垃圾注册、短信验证码滥刷、撞库、暴力破解、恶意抢购、秒杀、薅羊毛、抢红包、机器人抢票、刷票、恶意投票、垃圾消息。
下图描述了数据风控的工作流程。关于接入数据风控的应用场景示例和实际效果,请参见数据风控应用示例。
兼容性说明
数据风控仅适用于网页或H5环境。在某些情况下,可能存在页面中插入的用于安全防护的JS插件与原页面不兼容的问题,导致数据风控的滑块验证功能出现异常。目前,常见的存在不兼容问题的页面包括:
访问者可以直接通过URL地址访问的静态页面,例如各种通过HTML直接展示数据的详情页、分享页、网站首页、文档页等,页面跳转方式为直接修改
location.href
和使用window.open
、<a>
标签的页面。业务代码重写页面的请求发送方法或自定义请求提交,例如重写表单提交、重写XHR、自定义ajax提交等情况。
业务代码中存在hook相关请求提交的内容。
如果您的业务中可能存在不兼容问题,建议您在接入数据风控功能初期,选用预警模式并结合Web应用防火墙的实时日志分析服务进行兼容性和效果测试。更多信息,请参见日志服务概述。
如果出现不兼容的问题,您可以使用人机验证服务配合Web应用防火墙一起实现防护。
关于原生App业务的防护,建议您使用App增强防护SDK方案。更多信息,请参见设置App防护。
前提条件
已开通Web应用防火墙实例,且实例满足以下要求:
包年包月实例:实例地域是中国内地,且实例开启了Bot管理模块。
按量计费实例:已在账单与套餐中心开启Bot管理模块下数据风控功能。更多信息,请参见账单与套餐中心(按量2.0版本)。
已完成网站接入。具体操作,请参见使用教程。
WAF已上线防爬场景化配置功能,支持您基于实际业务场景对防爬规则进行定制,从而更有针对性地对业务进行爬虫风险防护。如果您有网站防爬的需求,建议您直接使用防爬场景化配置功能。配置防爬场景化规则后,无需再设置数据风控规则,即可实现网页防爬的效果。此外,数据风控功能已不再维护和更新,为您带来的不便,敬请谅解。
操作步骤
登录Web应用防火墙控制台,在顶部菜单栏,选择WAF实例的资源组和地域(中国内地、非中国内地)。
在左侧导航栏,选择 。
在网站防护页面上方,切换到要设置的域名。
单击Bot管理页签,定位到数据风控区域,完成以下功能配置并单击前去配置。
参数
说明
状态
开启或关闭数据风控。开启数据风控后,Web应用防火墙默认将在网站所有(或指定的)页面中插入JS插件用于安全防护,页面响应内容将以非GZIP压缩方式进行传输。即使您的网站配置使用非标端口访问,也无需添加额外配置。
说明您必须先开启数据风控,才能调整防护模式和设置防护规则。
数据风控开启后,所有网站请求默认都会经过数据风控规则的检测。您可以通过设置Bot管理白名单,让满足条件的请求忽略数据风控规则的检测。更多信息,请参见设置Bot管理白名单。
模式
数据风控的防护模式。可选值:
强拦截:识别到业务攻击时,网站将被重定向至验证页面进行严格的二次验证。
拦截:识别到业务攻击时,网站将被重定向至验证页面进行二次验证。
告警:识别到业务攻击时,只记录风险日志、不进行拦截,可通过业务风控报表查看详细风险情况。
说明默认使用预警模式,数据风控不会对任何请求进行拦截,但依然会在静态页面中插入JS脚本分析客户端行为。
添加数据风控防护规则。
在数据风控页面,单击防护请求页签,并单击新增防护请求。
在新增防护请求对话框,输入防护请求URL。更多信息,请参见什么是防护请求URL。
单击确定。
防护请求添加成功后,10分钟左右生效。您可以在防护请求列表中查看新增的防护请求,并根据需要编辑或删除防护请求。
可选:指定JS插入页面。
由于部分页面前端代码与数据风控的JavaScript脚本可能存在兼容性问题。如果遇到此类问题,建议您通过指定页面插入JS功能仅添加部分页面进行安全防护。
说明仅在部分页面插入JS插件时,数据风控将可能无法获取完整的用户访问行为,并对最终的防护效果产生影响。
在数据风控页面,单击JS插入页面页签。
选中指定页面插入JS,并单击添加页面。
说明最多支持添加20个页面地址。
在添加URL对话框,输入要插入JS的页面的地址(必须以“/”开头),并单击确定。
成功添加URL后,数据风控将仅在您所添加的URL路径下的页面中插入JS插件。
开启数据风控后,您可以使用Web应用防火墙的日志服务功能查看防护结果。相关操作,请参见查看防护结果。
什么是防护请求URL
防护请求URL是执行业务动作的接口地址,而不是页面本身的URL地址。例如,注册页面本身的URL地址为www.aliyundoc.com/new_user
,获取验证码按钮对应的业务接口地址是www.aliyundoc.com/getsmscode
,注册按钮对应的业务接口地址是www.aliyundoc.com/register.do
。
这种情况下,您应该为获取验证码按钮的接口地址www.aliyundoc.com/getsmscode
和注册按钮对应的接口地址www.aliyundoc.com/register.do
分别添加防护请求,并设置为防护请求URL,防止验证码的短信接口被刷和垃圾注册风险。如果将注册页面地址www.aliyundoc.com/new_user
设置为防护请求URL,当正常用户访问该页面时也将收到滑块验证提示,影响用户体验。
设置防护请求URL时,请注意以下信息:
防护请求URL必须精确到实际请求URL,不支持模糊匹配。
例如,将
www.aliyundoc.com/test
设置为防护请求URL,则数据风控只匹配test路径的访问请求,不会匹配test路径下所有页面的访问请求。数据风控支持对网页目录进行防护。
例如,您将防护请求URL设置为
www.aliyundoc.com/book/*
,即可对www.aliyundoc.com/book
路径下所有页面的请求实现数据风控防护。但是,不建议您为全站配置防护。假如设置www.aliyundoc.com/*
为防护请求URL,将导致用户访问网站首页时也需要通过滑块验证,影响用户体验。直接请求数据风控已防护的URL一定会触发滑块验证。因此,请确保所配置的防护请求URL在正常情况下不会被用户直接请求,即正常用户通常需要经过一系列的前置访问后才会请求该URL地址。
直接调用API接口的场景不适合使用数据风控进行防护。由于API调用是直接发起的机器行为,无法通过数据风控的人机识别验证。但是,对于正常用户单击页面中的某按钮调用API接口的情况,可以通过数据风控功能进行防护。
查看防护结果
您可以使用Web应用防火墙的日志服务功能来排查数据风控的监控和拦截情况。
为域名开启日志采集后,您可以在日志查询页签,通过高级搜索功能下的数据风控筛选项,快速查询数据风控的监控和拦截情况。具体操作,请参见查询和分析日志。
数据风控应用示例
阿里云用户小丁在互联网上搭建网站业务,网站域名是www.aliyundoc.com
,普通用户可以通过www.aliyundoc.com/register.html
注册成为网站会员。近来,小丁发现存在黑客通过一些恶意脚本频繁提交注册请求,并注册大量垃圾账户来参与网站的抽奖活动。所提交的请求与正常用户请求相似度很高,且请求频率不高,传统的CC攻击防护功能难以分辨出这些恶意请求。
配置示例
小丁将网站业务接入Web应用防火墙并为www.aliyundoc.com
域名开启数据风控功能。小丁当前最关心的注册业务的请求URL是www.aliyundoc.com/register.html
,因此将该URL设置为防护请求URL。
防护效果
防护配置生效后,数据风控通过在所有页面中插入的JS插件,观察并分析每一个访问www.aliyundoc.com
网站域名(包括首页及其子路径)的用户的各种行为,判断是否存在异常。同时,结合阿里云的大数据信誉库判断访问源IP是否存在风险。
当用户向www.aliyundoc.com/register.html
地址提交注册请求时,Web应用防火墙将基于该用户自开始访问该网站,到提交注册请求间的所有行为和环境征来判断用户是否可疑。例如,如果用户没有任何前置操作直接提交注册请求,则可基本判断该请求为可疑请求。具体说明如下:
如果基于之前的行为,数据风控判断该请求来自正常用户,则该用户在注册过程中将无任何感知。
当数据风控判断该请求为可疑请求,或者该访问源IP曾有不良记录,将通过滑块验证的方式验证用户身份。只有通过验证的用户,才能继续进行注册。
如果通过滑块验证方式可疑(例如,使用脚本模仿真人滑动过程等),数据风控将继续通过其他方式再次进行验证,直到验证通过且通过方式可信。如果无法通过验证,数据风控将阻断该请求。
整个过程中,由于数据风控是针对整个网站域名(www.aliyundoc.com
)开启的,数据风控需要对该域名下的所有页面插入JS插件来判断用户行为是否可信。而真正的防护和验证,仅针对www.aliyundoc.com/register.html
注册接口URL生效,只有在提交注册请求时数据风控才会对请求进行干涉。