防止惡意攻擊短信驗證碼接口方法前端
一、手機號碼限制:限制單個手機號碼天天的最大發送次數。超過次數不能發送短信,能夠考慮將手機號碼加入黑名單,禁止1天。
二、短信發送時間間隔限制:限制同一個手機號碼重複發送的時間間隔。一般設置爲60-120秒,前端作倒計時限制,時間未到不能點擊發送短信按鈕,後臺也作時間間隔限制,時間未到不能發送短信。
三、IP地址限制:限制每一個IP地址天天的最大發送次數。防止經過同一個IP地址不一樣手機號碼進行惡意攻擊。超過次數不能發送短信,能夠考慮將IP地址加入黑名單,禁止1天。能夠考慮限制同一個IP地址每分鐘的接口請求頻率。
四、發送流程限制:將流程分紅兩個步驟。如:註冊用戶,將發送短信驗證碼和設置用戶名密碼分紅兩個步驟,第一步一個頁面用來設置用戶名和密碼,用戶設置用戶名和密碼發送到後臺,獲取到後臺返回的第一步成功回執以後,進入第二步另外一個頁面發送手機短信驗證碼。
忘記密碼,找回密碼,第一步輸入用戶名,第二步發送短信驗證碼。
五、增長圖片驗證碼:發送短信驗證碼時,要求輸入圖片驗證碼,每一個圖片驗證碼僅能使用1次,使用1次後,無論輸入的圖片驗證碼是否正確自動失效。若是輸入錯誤更新圖片驗證碼。圖片驗證碼失效能夠防止圖片驗證碼識別軟件嘗試屢次識別,能夠考慮複雜的圖片驗證碼或點觸驗證、滑動驗證。
六、對發送者進行惟一性識別:防止修改參數僞造多個IP地址和手機號碼進行惡意攻擊,用Token做爲惟一性識別標識,後臺將Token注入到前端,前端能夠獲取到Token,請求發送短信驗證碼接口時帶上Token,後臺接收到Token進行驗證,驗證未經過不能發送短信。
七、發送短信驗證碼,短信驗證碼有效期內,發送相同的短信驗證碼。好比設置30分鐘有效,短信發送時間間隔限制爲60秒,第一次發送以後,60秒倒計時結束,點擊按鈕第二次發送,第二次發送的驗證碼和第一次相同。
八、短信驗證碼能夠考慮數字和字母組合。
九、短信驗證碼輸入錯誤次數限制,好比設置短信驗證碼輸入錯誤3次後,這個短信驗證碼就不能使用了。防止猜想短信驗證碼惡意註冊。
十、上行短信驗證碼:對於可疑用戶要求其主動發短信。
blog
短信運營商調研選型接口