API接口訪問頻次限制 / 網站惡意爬蟲限制 / 網站惡意訪問限制 方案


API接口訪問頻次限制 / 網站惡意爬蟲限制 / 網站惡意訪問限制 方案

采用多級攔截,后置攔截的方式體系化解決

1 分層攔截

1.1 第一層 商業web應用防火牆(WAF)

直接用商業服務

傳統的F5硬件,不過現在用的很少了 雲時代就用雲時代的產品,典型代表 阿里雲 web應用防火牆

1.2 第二層 API 網關(API Gateway)層

API 網關(API Gateway)

kong為代表的開源 API 網關 實現 openresty + lua 自實現 windows平台 安全狗、雲鎖 實現

1.3 第三層 應用層

用Redis內置lua腳本

redis是塊磚,哪里需要哪里搬 redis內置了lua引擎,2.6版本后你可以編寫一段lua腳本,完成邏輯判斷流程

常見的有對某維度計數器法 對某維度令牌桶法 維度的概念比如就是IP或者IP+模塊等, 多個字段合並成一個維度

本方案滿足絕大多數應用層的限流需求 當然也可以自己用應用層程序實現,前提是redis+lua滿足不了你的需求

2 后置攔截

基本的套路其實很簡單,從日志這里計算出惡意IP,惡意用戶,再給其他系統用 分控的基本思想也是這樣的

已經在用ELK日志系統:可以用ES中定時查詢高頻IP,送入WAF做攔截 已經在用流計算系統:flink和spark等流計算系統計算出高頻惡意IP,用戶等

然后就可以應用這些計算出的結果數據做限制,封禁等

3 一+二+三+后置協同工作

第一層Waf當然有攔截,但是對於新IP他不會馬上生效, 會有幾分鍾的時間才會攔截 特別是惡意爬蟲IP池一上,大量新IP就來了,第一層會放過來,如果只是一層,結果就是數據庫慢查詢告警叮叮叮

配合上二層 三層 一層一層攔截 如果沒有精力搞二層,那么第一層用買的,第二層不做,搞第三層

后置攔截的結果可以作為長期封禁使用 這種多次攔截的策略和多級緩存的概念是不是很像 多層次的攔截保障源站監控告警靜悄悄

面向C端的產品被爬蟲,被惡意訪問的概率會大很多 面向B端的網頁也不是沒有風險 面向B端的API也有限流的需求


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM