Bots

通过配置Bot管理,您可以设置对应的防爬虫规则,为浏览器Web页面或基于iOS/Android原生开发的App(需要您的App集成我们的SDK)提供防爬功能。Bot管理支持您灵活配置对不同特征的请求做爬虫挑战,也支持您直接使用系统内置的爬虫库(搜索引擎爬虫、AI智能防护、爬虫威胁情报库、IDC黑名单、伪造爬虫名单等)而无需自己手动分析和更新爬虫特征。

注意事项

通过Bots规则拦截的请求将不会计入费用,也不会消耗套餐额度。

配置Bot规则集

  1. 登录ESA控制台

  2. 在左侧导航栏,单击站点管理

  3. 站点管理页面,单击目标站点名称,或对应站点操作列的详情

  4. 在站点详情中,选择安全防护>Bot管理

  5. Bot管理页面,单击创建规则集

  6. 按需求设置网页防爬规则设置App防爬规则后,单击确定

设置网页防爬规则

如果您通过浏览器访问网页或H5页面(包括App中使用的H5页面)等,您可以通过设置浏览器访问网页的防爬规则,更有针对性地对业务进行爬虫风险防护。

配置模块

配置项

说明

全局配置

规则集名称

设置规则集名称,支持输入英文字符(大小写)、数字(0~9)及下划线(_)。

防护目标类型

选择网页/浏览器,表示防护通过浏览器访问的网页或H5页面等,包括App中使用纯H5页面呈现的内容。

SDK集成方式

  • 自动集成(推荐):

    WAF将自动在您站点的HTML页面中引用SDK并嵌入JS代码,SDK采集相关的浏览器信息、特定攻防探针、操作行为等(不涉及个人敏感信息)后,WAF将根据获取的信息请求风险识别和拦截。

  • 手动集成

    若当前环境不适用自动集成,您可以采用手动集成,复制页面上提供的JS代码将其植入您的HTML代码中。

跨域调用

选择自动集成时,如果您有多个站点均开启了Bot管理的Web SDK自动集成且多个站点域名互相访问(如通过站点B下某页面调用当前站点A的登录接口),为了防止多次嵌入JS代码,您需勾选并选择跨域访问的来源站点域名(即例子中的B站点)。

当请求匹配以下规则时...

设置要匹配的用户请求特征,请求匹配规则详细信息请参见WAF

则执行...

合法Bot管理

搜索引擎爬虫白名单,支持主流搜索引擎的爬虫IP信息,可动态更新,目前包含Google、百度、搜狗、Bing、360、Yandex。

选择指定的搜索引擎爬虫后,来自相关搜索引擎的合法爬虫IP将被直接放行,不经过Bot管理模块的防护检测。

Bot特征识别

  • 简单脚本过滤(JavaScript挑战):开启此开关后,对访问防爬防护目标的客户端进行JS校验,对不支持JS校验的来自非浏览器类工具的流量过滤,阻断简单脚本类攻击。

  • 高级Bot防御(动态令牌挑战):开启此开关后,对每一次请求数据进行签名验证,不能通过验签的请求将被拦截。您可以选择签名验证异常(该项为必选,指未携带签名或者签名非法)、签名时间戳异常、WebDriver攻击。

Bot行为识别

AI智能防护,防爬规则会通过AI智能防护引擎对访问流量进行分析和自动学习,生成有针对性的防护规则或黑名单。

  • 观察:防爬规则会放行命中流量并将流量记录在安全报表中。

  • 滑块校验:客户端需完成滑块校验后才能继续访问防护目标。

自定义限速

  • IP限速(默认):规定在统计时长内,来自同一IP地址的访问次数超过指定阈值时,对来自该IP的访问请求执行滑块拦截观察的限速动作,并规定限速动作的限速时间。最多添加3个条件,条件之间为“或”关系。

  • 自定义会话限速:您可以设置会话类型,自定义会话限速条件来规定在统计时长内,来自同一会话的访问次数超过指定阈值时,对该会话进行滑块拦截观察的限速动作,并规定处置动作的限速时间。最多添加3个条件,条件之间为“或”关系。

爬虫威胁情报库

收录一段时间内在阿里云上对多个用户有多次恶意爬取行为的攻击源IP地址。

您可设置爬虫威胁情报库为观察滑块校验

IDC黑名单封禁

会封禁选中IP库。如果您使用公有云或IDC机房的源IP来访问,请注意加白已知的合法调用,如支付宝或微信的支付回调、监控程序等。IDC黑名单封禁支持如下IP库:阿里云、世纪互联、美团云、腾讯云、其他。

您可设置IDC黑名单封禁为观察滑块校验拦截

伪造爬虫拦截

开启后将拦截合法Bot管理中所有搜索引擎的User-Agent,已开启白名单的搜索引擎对应的合法客户端IP将被放行。

生效时间

创建规则后默认立即生效且永久生效。您可以选择对不同规则按指定时间段生效或按指定的周期生效。

设置App防爬规则

如果您使用的是基于iOS或Android原生开发的App(不包括App中使用的H5页面),您可以通过设置App防爬规则,更有针对性地对业务进行爬虫风险防护。

配置模块

配置项

说明

全局配置

规则集

设置规则集名称,支持输入英文字符(大小写)、数字(0~9)及下划线(_)。

防护目标类型

选择APP,表示对使用基于iOS或Android原生开发的App(不包括App中使用的H5页面)进行防护。

SDK集成方式

您需要单击获取并复制appkey,填写信息申请获取SDK包。更多信息,请参见Android应用集成SDKiOS应用集成SDK。SDK集成后,将会采集客户端的风险特征并生成安全签名附带在请求中,WAF会根据签名特征进行请求风险的识别和拦截。

当请求匹配以下规则时...

设置要匹配的用户请求特征,请求匹配规则详细信息请参见WAF

则执行...

Bot特征识别

  • 设备特征异常:启用此项后,防爬规则会对具有异常特征的设备发起的请求进行检测和管控。设备的异常特征包括:

    • 签名过期:默认打开,表示设备请求的时间戳过期。

    • 使用模拟器:表示设备上使用了模拟器。

    • 使用代理:表示设备上使用了代理服务。

    • Root设备:表示设备开放了Root权限。

    • 调试模式:表示设备开启了调试模式。

    • APP被hook:表示设备上存在hook程序。

    • App多开:表示设备上同时打开了多个被防护App的进程。

    • 模拟执行:表示设备存在模拟用户行为的操作。

    • 脚本工具:表示设备存在自动执行脚本。

  • 自定义加签字段:选择字段名,在header参数cookie中自定义加签字段。

    对于签名对象比较特殊的场景(如body超长、为空或特殊编码等场景),可将签名内容用hash等方式处理后放在自定义的加签字段中,WAF将按照此处的内容进行验签。

  • 防护动作:您可根据需要将规则设置为观察拦截

    • 观察:触发告警,不阻断请求。

    • 拦截:直接阻断攻击请求。

  • 二次打包检测:启用此项后,如果有不在合法包名和包签名白名单中的App请求,将被视为二次打包请求。您可以设置合法版本信息:

    • 指定合法包名:指定合法的App包名称。例如,example.aliyundoc.com。

    • 包签名:请联系阿里云相关安全技术人员获取。如果无需验证对应的App包签名,则包签名项为空即可,WAF将只验证所设定的合法App包名称。

      说明

      包签名不是App证书签名。

Bot限速

  • IP限速(默认):规定在统计时长内,来自同一IP地址的访问次数超过指定阈值时,对来自该IP的访问请求执行拦截观察的限速动作,并规定限速动作的限速时间。

  • 设备限速:您可以通过设置设备限速条件来规定在统计时长内,来自同一设备的访问次数超过指定阈值时,对来自该设备的访问请求执行拦截观察的限速动作,并规定限速动作的限速时间。

  • 自定义会话限速:您可以设置会话类型,自定义会话限速条件来规定在统计时长内,来自同一会话的访问次数超过指定阈值时,对该会话、拦截观察的限速动作,并规定处置动作的限速时间。

爬虫威胁情报库

收录一段时间内在阿里云上对多个用户有多次恶意爬取行为的攻击源IP地址。

IDC黑名单封禁

开启此开关后,会封禁选中IP库。如果您使用公有云或IDC机房的源IP来访问,请注意加白已知的合法调用,如支付宝或微信的支付回调、监控程序等。IDC黑名单封禁支持如下IP库:阿里云、世纪互联、美团云、腾讯云、其他。

生效时间

创建规则后默认立即生效且永久生效。您可以选择对不同规则按指定时间段生效或按指定的周期生效。

不同套餐的支持情况

基础版

标准版

高级版

企业版

支持配置Bot管理规则集数

不支持

不支持

不支持

10个