Web应用防火墙(Web Application Firewall,简称WAF)针对Bot管理模块升级,提供防爬场景化配置功能。您可以基于实际业务场景对防爬规则进行场景化定制,更有针对性地对业务进行爬虫风险防护。本文介绍如何配置浏览器访问网页场景的防爬场景化规则。

背景信息

防爬场景化配置功能支持基于不同业务场景定制防爬规则,结合智能算法,精准识别爬虫流量,并对命中规则的爬虫行为自动处置。同时,在定制场景化防爬规则后,您可以在测试环境中对防爬规则进行应用前的验证,避免因规则配置不合理或防护兼容性问题,对您的网站或App业务产生误拦截或防护效果低等不利影响。

前提条件

  • 如果是包年包月实例:已开通高级版、企业版、旗舰版的Bot管理增值服务。
  • 如果是按量计费实例:已在账单与套餐中心,开启Bot管理模块下场景化配置功能。
    说明 使用按量计费WAF实例的防爬场景化配置功能时,阿里云将根据您已设置的场景个数来计费。相关内容,请参见计费说明
  • 已完成网站接入。具体操作,请参见使用教程

添加浏览器访问网页的防爬场景

  1. 登录Web应用防火墙控制台,在顶部菜单栏,选择WAF实例的资源组和地域(中国内地非中国内地)。
  2. 在左侧导航栏,选择防护配置 > 网站防护
  3. 网站防护页面上方,切换到要设置的域名。切换域名
  4. 如果您没有创建过防爬场景化规划,单击Bot管理页签,在场景化配置模块单击点我开始,创建您的第一条防爬场景化规则。如果您已创建过防爬场景化规则,在Bot管理页签右上角单击添加,创建更多的防爬场景化规则。
    说明 每个域名最多可添加50条场景化配置规则。
  5. 防护场景定义配置向导页面,设置防爬保护目标的基础信息,并单击下一步
    配置项说明
    防护业务场景填写该防爬规则防护的业务场景类型。常见场景包括登录、注册、下单等。
    防护目标类型选择网页/浏览器,表示对浏览器访问的网页或H5页面(包括App中使用的H5页面)进行防护。

    如果网站用户从另一个域名发起对当前防护目标的访问请求,则需选择防护目标有来自其它域名的跨域调用,并从下拉列表中选择跨域访问的来源域名。

    防护目标特征添加目标流量的HTTP请求字段及其规则,即访问该防护目标时,HTTP请求报文中生成的有关该防护业务场景的字段内容。有关字段的详细内容,请参见匹配条件字段说明。最多可以添加5个条件。
    重要 输入IP地址后需要按回车。
  6. 防护规则推荐向导页面,设置防爬场景规则的详细内容,并单击下一步
    配置项说明
    简单脚本过滤开启此开关后,对访问防爬防护目标的客户端进行JS校验,对不支持JS校验的来自非浏览器类工具的流量进行过滤,阻断简单脚本类攻击。
    动态令牌挑战默认未开启。开启此开关后,对每一次请求数据进行签名验证,不能通过验签的请求将被拦截。您可以选择签名验证异常(该项为必选,指未携带签名或者签名非法)、签名时间戳异常WebDriver攻击,开启动态令牌挑战。
    AI智能防护开启此开关后,防爬规则会通过AI智能防护引擎对访问流量进行分析和自动学习,生成有针对性的防护规则或黑名单。您可根据需要将AI智能防护生成的规则设置为观察模式滑块校验模式。设置为观察模式,防爬规则会放行命中流量并将流量记录在安全报表中;设置为滑块校验模式,客户端需完成滑块校验后才能继续访问防护目标。
    爬虫威胁情报库匹配通过与阿里云威胁情报库匹配,准确识别出阿里云上对多个用户有多次恶意爬取行为的攻击源IP地址,来自这些攻击源IP地址的访问请求将需要完成滑块校验,才能继续访问防护目标。
    IDC黑名单封禁封禁来自阿里云和其他主流云厂商IDC黑名单库的IP地址,阻止这些黑名单地址对防护目标发起访问请求。
    IP限速设置访问频率限制条件,有针对性地过滤访问频率过高的爬虫请求,有效缓解CC攻击。

    您可以自定义IP限速条件来规定在指定时长内,来自同一IP地址的访问次数超过指定阈值时,对来自该IP的访问请求执行阻断、滑块校验或观察的处置动作,并规定处置动作的生效时长。最多可以设置3个条件。相关内容,请参见设置自定义防护策略

    自定义会话限速开启后即可自定义访问频率限制条件,有针对性地过滤访问频率过高的爬虫请求,有效缓解CC攻击。

    您可以自定义会话限速条件来规定在指定时长内,来自同一会话的访问次数超过指定阈值时,对该会话执行阻断、滑块校验或观察的处置动作,并规定处置动作的生效时长。相关内容,请参见设置自定义防护策略

  7. 防护动作验证向导页面,测试防爬防护规则。
    建议您先完成防护动作验证,再发布策略,避免出现因规则配置错误、兼容性等问题引发误拦截。如果您确认规则配置无误,也可以单击左下角跳过,直接创建
    验证步骤如下:
    1. 填写公网测试IP:填写您测试设备(PC或手机)的公网IP。防爬规则验证测试仅针对该公网IP生效,不会对您的业务产生影响。
      重要 请不要填写通过ipconfig查询的IP地址(即内网IP地址)。如果不确定您设备的公网IP,可以通过在线IP查询工具查询。
    2. 选择动作进行测试:将对防护规则推荐中配置策略所涉及到的防护动作(可选JS校验防护效果验证动态令牌验证滑块验证拦截验证)生成一条只针对您测试IP生效的测试规则,验证防护动作的执行结果。

      在测试动作模块上单击去测试后,WAF会将防护策略即刻下发到测试设备,同时为您展示测试效果演示图和说明,建议您仔细阅读。

      完成测试后,单击已完成测试进入下一步;如果测试结果异常,可以单击返回去再准备一下,优化防爬规则后重新测试。

  8. 策略预览和发布页面,确认策略的内容,单击发布
    策略发布后即刻生效。
    说明 首次创建场景时不会展示规则ID,正式发布防爬场景化规则后,您可以在安全报表页面的Bot管理页签下方,查看规则ID信息。规则ID可用于日志服务中检索特定规则的命中情况。

防爬策略测试常见问题

若在防护动作验证时出现异常情况,可参考表格解决对应问题。

报错原因解决方法
未查询到任何有效测试请求,您可以查看帮助文档或咨询我们以分析可能的原因。实际测试请求没有发送成功,或者没有发送到WAF。确认测试请求已经成功发送到WAF解析的地址。
实际测试请求的字段内容与防爬规则中定义的防护目标特征不一致。在防爬策略中修改防护目标特征的内容。
实际测试请求的源IP与配置策略中填写的公网测试IP不一致。请确保您使用的是正确的公网IP,建议直接使用诊断工具查询您的公网IP地址。
请求未通过校验,您可以查看帮助文档或咨询我们以分析可能的原因。没有模拟真实用户访问,例如使用了调试模式、自动化工具等。测试时使用客户端真实模拟用户访问。
防护场景选择错误,例如实际需要配置App防爬场景规则,但错选为网页/浏览器在防爬场景化规则中修改防护场景类型。
访问请求存在跨域的情况,但在防爬场景化规则中未正确配置。修改防爬场景化规则,选中防护目标有来自其它域名的跨域调用并从下拉列表中选择跨域访问的来源域名。
前端兼容性问题。请提交工单,联系我们。
请求未触发校验,您可以查看帮助文档或咨询我们以分析可能的原因。测试规则没有下发完毕。建议您多测试几次,等待防爬测试规则下发完成。
未拦截且查询到任何有效测试请求,您可以查看帮助文档或咨询我们以分析可能的原因。实际测试请求没有发送成功,或者没有发送到WAF。确认测试请求已经成功发送到WAF解析的地址。
实际测试请求的字段内容与防爬规则中定义的防护目标特征不一致。在防爬策略中修改防护目标特征的内容。
实际测试请求的源IP与配置策略中填写的公网测试IP不一致。请确保您使用的是正确的公网IP,建议直接使用诊断工具查询您的公网IP地址。

后续步骤

前往安全报表中的Bot管理页签,查看防护效果和规则命中的详细内容,并且根据防护效果,优化防爬场景化策略。