接口的防刷辦法


為什么會有人要刷接口?

1、牟利

黃牛在 12306 網上搶票再倒賣。

2、惡意攻擊競爭對手

如短信接口被請求一次,會觸發幾分錢的運營商費用,當量級大了也很可觀。

3、壓測

用 apache bench 做壓力測試。

4、當程序員無聊的時候


什么是刷接口的"刷"字?

1、次數

2、頻率

頻繁,可能 1 秒上千次

3、用戶身份難以識別

可能會在刷的過程中隨時換瀏覽器或者 ip


判斷接口是否是惡意?

根據用戶粒度,如果該用戶符合上面提到的“刷”的概念,就是惡意的。


用戶粒度如何划分?

1、當前網頁

優點:無
缺點:沒有任何意義,一刷新頁面用戶的身份就變了

2、session

優點:偽造成本一般(可以理解成一個瀏覽器對應了一個用戶)
缺點:當用戶手動清除 cookie 的時候即失效

3、ip

優點:偽造成本高
缺點:要考慮一個公司、一個小區的人一般會共享一個 ip,所以適當的要放寬對單一 ip 的請求限制

ip 信息是存在請求頭里的,而 https 對請求本身做了加密,可以防止 ip 信息被偽造或篡改。所以推薦服務器采用 https 傳輸。


當知道接口是惡意請求時,我們該怎么做?

一、直接拒絕訪問

優點:簡單粗暴
缺點:簡單粗暴

二、返回“操作頻繁”的錯誤提示

優點:提示友好
缺點:會把確實是操作比較頻繁的真實用戶攔截

三、驗證碼

1、圖形

2、滑塊

3、找不同

優點:精准識別請求是真人還是機器發出的,二次篩選出真正的用戶
缺點:不夠人性化,用戶操作時間長、體驗差


總結

安全問題是長期的和攻擊者斗智斗勇的問題,沒有一勞永逸的解決方案,不斷交鋒,不斷成長



免責聲明!

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



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