我們一直不怕網站内容被爬走,但怕服務器被瘋狂的爬蟲爬垮,所以希望能限制惡意爬蟲速度,而又不影響用戶訪問和搜索引擎爬蟲抓取,這是個兩難的事情。
以前用過自己寫的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的速率限制中可以排除已驗證爬蟲。
自由标簽
评论