隨感:接口防刷
接口防刷
一段時(shí)間內(nèi)接口的請(qǐng)求頻率、數(shù)量過(guò)大。ip一般是不可變的,變化成本相對(duì)較高。
判斷條件, ip+ua (ua可隨便變,判斷就失效)
舉措,基于數(shù)據(jù)統(tǒng)計(jì)設(shè)定閥值:
1. ua檢測(cè),常見(jiàn)爬蟲(chóng)ua,比如帶python字符,禁止訪問(wèn);referrer判斷;
2. 驗(yàn)證碼,滑動(dòng)圖片等;需要人工干預(yù);識(shí)別機(jī)器
3. 請(qǐng)求降速、延時(shí)返回、IP限制
4. token驗(yàn)證,校驗(yàn)服務(wù)端下發(fā)的token與請(qǐng)求的token是否一致,非法token直接丟棄 (可偽造正常請(qǐng)求token后,然后再次請(qǐng)求繞過(guò))
5. 請(qǐng)求數(shù)據(jù)加密,提高成本,至少需要去了解 前端請(qǐng)求數(shù)據(jù)組裝邏輯
日志分析告警,事后手動(dòng)干預(yù)!!!
限制請(qǐng)求
不要登錄的請(qǐng)求:
基于IP
基于設(shè)備限制
ip + ua ,存在誤殺風(fēng)險(xiǎn)
防止同一設(shè)備多次操作?=> 調(diào)整成ip + 設(shè)備指紋
設(shè)備指紋: 理想狀況:清掉緩存,換UA等等也是生成相同id。理解上只跟硬件或基本不可變的,比如操作系統(tǒng)相關(guān),需要找相關(guān)開(kāi)源算法,不能完全保證
不然調(diào)整為ip + ua + 唯一cookie/或其他參數(shù)(可變)
必須登錄的請(qǐng)求:基于用戶限制
ip + userId
防止相同ip下不同賬號(hào)多次嘗試? => 至少需要申請(qǐng)多個(gè)賬號(hào)
