有时候网站上的大部分流量来自各种机器人,包括“好的”机器人(例如搜索引擎)和“坏的”机器人(例如内容抓取工具)。我们需要获得有关网站上机器人数量和类型的数据,来分析流量来源。
另外在进行Bot control时还需要留意成本,对静态对象(CSS 样式表、JavaScript 文件等)等没有必要进行保护。例如开发人员使用以下 RegEx 语句来排除静态文件:
(?i)\.(jpe?g|gif|png|svg|ico|css|js|woff2?)$
可以使用 AWS WAF Bot control托管规则集来了解站点上的机器人流量。Bot control托管规则组提供基本的通用保护级别,自动识别机器人并添加标签。有关更多详细信息,请查看 文档
首先,创建一个正则表达式模式集,以根据开发人员输入过滤掉静态内容。
创建正则表达式模式集:

pattern sets名称:static-content(?i)\.(jpe?g|gif|png|svg|ico|css|js|woff2?)$
接下来,启用 AWS WAF Bot control以了解机器人流量。先进行Count,以确保不会阻止任何机器人流量。
添加Bot control有两种方式,一种是在 Bot control dashboard里直接添加:

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

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

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

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

在Bot control rules中,选择Override to Count:

这样所有的检查规则都会为Count模式。
最后添加规则并保存。完成后的效果:
