我们一直不怕网站内容被爬走,但怕服务器被疯狂的爬虫爬垮,所以希望能限制恶意爬虫速度,而又不影响用户访问和搜索引擎爬虫抓取,这是个两难的事情。
以前用过自己写的php程序,但对数据库有压力,也不完善,后面放弃了。
还用过Apache qos模块,但查看error日志不方便,还担心403等状态被缓存,今年也彻底放弃了。
Cloudflare以前的速率限制功能收费,而且费用不低,所以开通了但没有大量使用,只是在登录页等地方做了少量尝试。
而Cloudflare在上个月的🎂生日周系列新产品发布中将以前收费的速率限制功能免费了!下面是相关文章:
Back in 2017 we gave you Unmetered DDoS Mitigation, here's a birthday gift: Unmetered Rate Limiting
不同的级别用户提供不同的数量和功能:
FREE免费版 | PRO专业版 | BUSINESS商业版或ENT企业版 | "ENT 企业版 带基本防火墙" | "ENT 企业版 带高级速率限制" | |
---|---|---|---|---|---|
可用字段 | Path, Verified Bot | Host, URI, Path, Full URI, Query, Verified Bot | Host, URI, Path, Full URI, Query, Method, Source IP, User Agent, Verified Bot | Standard fields, dynamic fields (including Verified Bot), other Bot Management fields2 | Standard fields, dynamic fields (including Verified Bot), other Bot Management fields2, request body fields3 |
计算表达式 | Not available | Not available | Available with access to response headers and response status code | Available with access to response headers and response status code | Available with access to response headers and response status code |
计算对象 | IP | IP | IP | "IP IP with NAT awareness" | "IP IP with NAT awareness Query Host Headers Cookie ASN Country Path JA3(2) JSON field (New!)" |
最大计算周期 | 10 秒 | 60 秒 | 10 分钟 | 10 分钟 | 1 小时 |
价格 | 免费 | 包月 | 包月 | 按合同 | 按合同 |
规则数量 | 1 | 2 | 5 | 100 | 100 |
操作选择 | 阻止 | 记录/阻止 | |||
阻止周期选择 | 10秒 | 10秒/1分钟/1小时 | 10秒/1分钟/1小时/1天 | 10秒/1分钟/1小时/1天 | 10秒/1分钟/1小时/1天 |
速率限制实操:
- 在“安全性” - “WAF” - “速率限制规则”中添加速率限制规则
- 30次/10秒,阻止1分钟,排除css/js/图片/图标等
- 180次/分钟,阻止1小时,排除css/js/图片/图标等
- 在“安全性” - “WAF” - “防火墙规则”中添加排除跳过速率限制(更新:这个排除速率限制的办法只对收费的老版本的速率限制有效,对免费的新版本的速率限制无效!)
- 排除合法机器人爬虫
- 排除巡检程序的User Agent或者IP
- 在“安全性” - “概述” 中查看被速率限制规则阻止的访问记录
- 过滤条件:服务 等于 速率限制规则,操作 等于 阻止
- 查看内容:User Agent、IP、路径以及活动日志,以确认正常爬虫不被阻止,如有必要调整跳过条件
先记录到这里,目前还在试用中,以后还会根据情况进行调整,以及补充修改本文。
补充资料:
- Rate limiting rules 速率限制规则
2022-12-12更新:
- 在“安全性” - “WAF” - “防火墙规则”中添加排除跳过速率限制只能老版本的速率限制有效,但新版本的速率限制无效,可以采取在“安全性” - “WAF” - “工具”中添加IP 访问规则,将常见的AS15169(Google)、AS8075(Microsoft)等IP段设置为“允许”,这些IP就不会受到速率限制的影响;
- 所有版本都在过滤条件中增加了Verified Bot,可以让通过验证的好爬虫跳过速率限制,设置截图如下:
这样设置Cloudflare的速率限制中可以排除已验证爬虫。
自由标签
评论