比如,當年著名的 CSDN 賬號密碼泄漏的事故。很多搞黑產的人拿著這批賬號,然後去其他平臺寫程序模擬登錄。這其實是有壹定概率成功的。因為,我們的大多數用戶都習慣把所有平臺賬號密碼設置為壹樣。這就給黑道用戶可乘之機。
其次,還有壹種撞庫不是通過已泄漏的賬號密碼來硬解。
我們很多用戶會把密碼設置為 123456 、 000000 、 666666 等密碼。當非法用戶來撞庫的時候,只需要把每個賬號可能出現的密碼組合進行壹壹登錄嘗試。總會有壹些賬號會被破解的。
基於如上這種撞庫,我們到底該如何解決呢?
黑產非法用戶通過撞庫無非是獲取更多用戶的隱私信息,或者通過平臺漏洞給用戶造成經濟損失。那麽,我們知道了黑產用戶的這點“小心思”之後,剩下的就是找到對應的方法堵住這兩條通道。
修改密碼的時候,我們驗證用戶的手機驗證碼。畢竟,現在很多平臺已經強制要求綁定手機號。壹來是法律有要求。二來是手機號做賬號就不需要再作壹個綁定手機號的功能。並且自己的手機號容易記錄。
通過如此操作,非法用戶無法更改密碼。
有了第壹步的依托。我們就可以在適當的時候根據業務的重要性驗證手機號驗證碼才能操作。這樣,即便黑產用戶知道了密碼又有如何?
我們登錄的時候,記錄用戶的 IP 地址。然後,根據用戶的 IP 得到地址位置編碼。下次登錄的時候,如果地址位置編碼發生變化。說明出現了異地登錄。此時,我們通過用戶的各種聯系方式發送提醒,讓用戶修改登錄密碼。
比如,壹個賬號每天登錄連續失敗 5 次就鎖定。這樣即使這個黑產非法用戶有千萬種可能性的密碼組合。依然無法有效破解。
比如,用戶的銀行卡號。像微信、支付寶。它會把用戶的卡號信息 * 星號化處理。像招商銀行、中國銀行等。想要查看完整的卡號密碼輸入短信驗證碼。
經過上面步驟之後。我們依然不能保證撞庫。只能保證盡量減少撞庫帶來的損失。
比如,壹個 IP 每個賬號試 5 次。那麽,依然可以把所有的賬號都試完。那這是不能接受的。所以,我們可以考慮把特殊位置的操作記錄寫入日誌。
記錄的信息如下:
然後,我們寫壹個腳本定時去分析該腳本。觸碰了封禁條件。就把這個 IP 寫入 Redis 。並設置壹個封禁時間。
如果不想自己寫這些亂七八糟的條件。可以使用成熟的 WAF 系統。這樣,直接在 WAF 系統當中配置,可以智能識別很多的攻擊問題。關於 WAF 我們這裏不展開講。目前我只接觸過阿裏雲的 WAF。覺得還不錯。就是有點貴哈~~~