进行Bot Control

有时候网站上的大部分流量来自各种机器人,包括“好的”机器人(例如搜索引擎)和“坏的”机器人(例如内容抓取工具)。我们需要获得有关网站上机器人数量和类型的数据,来分析流量来源。

另外在进行Bot control时还需要留意成本,对静态对象(CSS 样式表、JavaScript 文件等)等没有必要进行保护。例如开发人员使用以下 RegEx 语句来排除静态文件:

(?i)\.(jpe?g|gif|png|svg|ico|css|js|woff2?)$

可以使用 AWS WAF Bot control托管规则集来了解站点上的机器人流量。Bot control托管规则组提供基本的通用保护级别,自动识别机器人并添加标签。有关更多详细信息,请查看 文档

创建Regex pattern sets

首先,创建一个正则表达式模式集,以根据开发人员输入过滤掉静态内容。

创建正则表达式模式集:

image-20240101185237258

  1. 正则表达式pattern sets名称:static-content
  2. 正则表达式内容:(?i)\.(jpe?g|gif|png|svg|ico|css|js|woff2?)$
  3. 单击创建正则表达式 pattern sets:

image-20240101185317184

添加AWS WAF Bot control规则集

接下来,启用 AWS WAF Bot control以了解机器人流量。先进行Count,以确保不会阻止任何机器人流量。

添加Bot control有两种方式,一种是在 Bot control dashboard里直接添加:

image-20240101185624649

另一种是先进入到WebACL页面, 添加managed rule groups

image-20240101185714226

AWS managed rule groups中找到Bot control,点击Add to web ACL,然后Edit:

image-20240101185813409

对于Bot Control 检查级别,选择Common

image-20240101185951791

Scope of inspection 部分里,选择match a scope-down statement, 以减少检查的范围,控制成本

  1. If a request:doesn’t match the statement (NOT)
  2. 检查:URI 路径
  3. 匹配类型:regex pattern set
  4. 正则表达式模式集:static-content(上面创建的正则表达式模式集)
  5. 文本转换:

范围缩小声明

Bot control rules中,选择Override to Count:

image-20240101190017323

这样所有的检查规则都会为Count模式。

最后添加规则并保存。完成后的效果:

image-20240101190644122