前段時間,公司的短信接口被人惡意調用,給公司的業務和成本都帶來了壹定的影響。為了盡快止損,想出了以下幾種方案來完善發短信模塊,防止短信被刷。
通過時間戳生成 token ,保證 token 5分鐘之內有效。在表單頁面通過後端接口提前生成好 token ,用戶在5分鐘之內無需更新 token
優點: 短信接口必須攜帶 token 才能訪問,調用需要鑒權
缺點: 為了兼容用戶體驗, token 必須有壹定的有效期,用戶在短時期內無需手動刷新頁面更新 token
優點: 結合方法壹的 token 鑒權,可以大部分過濾掉惡意調用的行為
缺點: 黑客可通過肉機+隨機手機號的方式繞過限制
通過圖形驗證碼、人機校驗,在發送短信的行為端增高門檻,杜絕自動化調用。可通過方法二的限 ip ,防止攻擊者忽略人機校驗,大量執行請求給服務器帶來額外負擔
優點: 杜絕自動化調用
缺點: 圖形驗證碼被自動化破解的概率較高,人機校驗需要壹定的成本