如何有效防止別人惡意刷驗證碼

相信不少朋友都有試過被人惡意刷驗證碼的經歷,固然我也不例外,以前被人惡意搞過一次,若是短信服務針對的用戶不僅是國內用戶還涉及國外用戶的話,更加要作好安全機制,否則損失會很嚴重(由於國外的短信費用更加昂貴),因此纔會有感寫出一些相應的解決方法!html

(1)要根據自身業務邏輯去限制同個號碼天天最多的短信請求次數(簡潔點來講就是限定的次數足夠你去進行操做,若是超出了不少次,那很明顯就是惡意搞事啦);安全

(2)針對不一樣的IP限定發送次數(不過搞事的人可能會不斷去切換IP地址,因此最好仍是根據對應的狀況加個IP地址的黑名單);session

(3)發送驗證碼須要有時間間隔,時間控制在60秒左右,並且這個時間間隔的判斷最好不要單單在前臺判斷,最後後臺也存一個session的記錄,由於別人若是是經過代碼去刷的話,會直接跳過前臺的頁面操做;url

(4)通常刷驗證碼都是經過代碼去搞的,因此最好在獲取驗證碼的上一個流程裏,傳遞一個隨機數過來(注意不要用url去傳遞和不要在html裏出現,省得被對方知道你的方式,從而找到方法去獲取),這樣有效控制惡意刷驗證碼的狀況;htm

(5)使用畫布驗證碼,這個也是最簡單和最有效的防禦方法,超級地有效攔截了非人爲的操做;io

(6)能夠改用用戶發短信到指定的手機號碼驗證,這樣被刷的風險就不了(不過這種方法會增長用戶的操做難度,用戶體驗不太好,因此我的不建議使用這個方法去防範);驗證碼

固然這些方法可能不會徹底攔截全部惡意刷驗證碼的攻擊,可是咱們使用以上方法至少能給搞事的人增添一些難度,減小驗證碼惡意被刷的狀況!後臺

相關文章
相關標籤/搜索