如何使用Cloudflare防火墙阻止机器人?
从爬虫和机器人获得了大量请求,这对你的业务没有任何价值吗?
每天有数千个爬虫/机器人访问您的网站,但只有很少几个是有用的。其中一些被认为是不良机器人或垃圾邮件。
你如何知道有哪些机器人访问了你的网站?
嗯,没有简单的答案。要找出,您需要查看Web服务器的access.log
文件,并查看User-Agent列。假设您想列出除Googlebot之外的所有机器人,则可以在存在access.log文件的Web服务器上运行以下命令。
grep bot access.log |grep -v Googlebot
看到这么多,你感到惊讶吗?
当我查看我的日志时,我也是。
root@gf-prod:nginx# grep bot access.log |grep -v Googlebot | wc -l
616834
root@gf-prod:nginx#
在阻止任何内容之前,您需要对它们进行审查,以确保您不会阻止可能对您的业务有用的内容。而且,有很多方法可以完成此操作,但我总是喜欢在边缘阻止它们。
原因很简单 – 为什么要让请求命中Web服务器,当您根本不需要它们。
就像标题所说的那样,让我们看看如何使用Cloudflare防火墙阻止您不需要的机器人。
注意:如果您经营大型企业,则可能对Cloudflare bot management服务感兴趣。
- 登录Cloudflare
- 转到防火墙选项卡,然后选择防火墙规则并创建防火墙规则
- 输入规则名称
- 将字段选择为用户代理,操作员选择包含,值选择要阻止的机器人名称
- 使用或条件在单个规则中添加多个机器人
注意:上图中提到的机器人仅作示例。他们不一定是不良机器人。
- 然后选择操作为阻止并部署
- 如果您知道表达式,则可以通过单击编辑表达式而不是使用GUI来编写它。部署后,您应该在列表中看到新创建的规则,并且状态应为开启以生效。
很简单,不是吗?
防火墙规则还能做什么?
好吧,更多用于更好安全性的功能。让我们看看以下阻止条件。
- 如果请求来自特定的ASN,IP地址
- 匹配cookie,引荐者,X-Forwarded-for关键字
- 限制为整个国家提供请求
- 禁用不需要的HTTP method,如PUT,DELETE,OPTIONS,PURGE等。
以及更多选项…
您可以通过GUI构建器或编写自己的表达式来完成所有这些操作。应用更改几乎是即时的。
结论
Cloudflare防火墙规则是在无需停机的情况下为您的Web应用程序添加网络边缘保护的绝佳方法。如果尚未这样做,您可能还需要考虑使用Cloud WAF以获得更好的应用程序安全性,并保护免受DDoS和其他在线漏洞的影响。