最近我司部分客戶網站和app會出現
短信驗證碼被惡意調用,作為動力思維的技術人員,現在總結一些方法,幫助客戶以及我司提高驗證碼短信接口的安全機制。
客戶平臺方面:
主要有以下幾種手段:
1.限制同設備,同IP,同手機號的發送次數。
2.在獲取短信驗證碼操作之前采用點觸驗證或滑動驗證,驗證通過后再進行驗證碼接口請求。
3.檢測IP所在地是否與手機號歸屬地匹配(獲取請求的真實ip與手機號歸屬地,這個限制性太多,建議個別情況使用)。
4.先做預發送請求,后端返回校驗串,前端js將所有信息再次編碼送回,js記得混淆。前后驗證通過后再請求驗證碼接口。
5.對于已被拉黑的手機號/ip/設備,同樣提示發送成功,而后端不發出短信,可以做出標記,可以干擾攻擊者。
6.對手機號碼進行特定規則加密后生成簽名,提交到后臺。后臺通過相同規則生成簽名,比較兩個簽名相同后再進行短信發送。
7.增加短信獲取倒計時,相同號碼規定時間內獲取次數限制。
8.更換http協議為https協議,增加安全系數,增加攻擊的難度。
我司方面:
主要有以下幾種手段:
1.對客戶賬戶與IP綁定,報備過的IP地址提交的短信可以正常發送。其他ip無法正常提交。
2.對客戶提交的手機號進行分鐘限,小時限,日限。超過限制則無法正常發送。
3.對客戶發送短信時段進行監控,如與客戶要求不否則無法正常發送。
4.增加黑名單策略,可對黑名單號碼進行限制,屬于黑名單號碼無法正常發送。
5.增加監控功能,對存在異常的用戶進行短信、語音通知。及時止損。
以上便是我自己總結的一些防刷方法,希望能對大家有些幫助。有更好的方案可以聯系我們,共同進步。