防止簡訊驗證碼被刷

2021-10-23 17:24:13 字數 1461 閱讀 1320

1、圖形驗證碼限制:圖形驗證通過後再請求介面

圖形驗證碼限制是最常用的一種方式,使用者輸入圖形驗證碼並通過之後,再請求簡訊介面獲取驗證碼。

2、時間限制:60秒後才能再次傳送

這種措施使用得比較普遍,從傳送驗證碼開始,前端(客戶端)會進行乙個60秒的倒數,在這一分鐘之內,使用者是無法提交多次傳送資訊的請求的。但是卻不是非常有用,技術稍微好點的人完全可以繞過這個限制,直接傳送簡訊驗證碼。

3、手機號限制:同乙個手機號,24小時之內不能夠超過5條

對使用同乙個手機號碼進行註冊或者其他傳送簡訊驗證碼的操作的時候,系統可以對這個手機號碼進行限制,例如,24小時只能傳送5條簡訊驗證碼,超出限制則進行報錯(如:系統繁忙,請稍後再試)。然而,這也只能夠避免人工手動刷簡訊而已,對於批量使用不同手機號碼來刷簡訊的機器,這種方法也是無可奈何的。

注意:

1:圖形驗證碼驗證邏輯放後台處理,禁止圖形驗證碼返回前端,防止利用第三方軟體擷取圖形驗證碼。

2:時間限制60秒傳送一次,傳送後手機和驗證碼繫結存入域中,輸入驗證一次手機號,立馬把驗證碼失效,防止多次嘗試爆破驗證碼,

3:同一手機號,傳送過簡訊,對手機號正則判斷,

a.傳送一次驗證碼可以用三次,

手機號與驗證碼相同時,3分鐘內最多使用3次控制。

只能使用次數做判斷,放入域中,手機號和驗證碼作為key,使用次數作為value,使用一次,value加1,每次驗證大於3時,拒絕使用。(key不存在時第一次驗證存1,key存在時,value+1);

b.手機號與驗證碼繫結驗證,防止a利用b的驗證碼

1:驗證碼傳送成功後,域存key為手機號,value為驗證碼,

2::驗證時,用輸入的手機號獲取的驗證碼與頁面傳入的驗證碼比較,且不為空

c.1分鐘內重**送驗證碼控制。

1:驗證碼傳送成功後,記錄傳送時間與結束時間 當前時間,推遲1分鐘為結束時間。結束時間存入域中。

2:再次傳送時判斷域中結束時間是否為null,為null則傳送,否側獲取當前時間,與結束時間判斷,小於結束時間並且大於傳送時間(結束時間減1)則也不傳送

d.傳送簡訊之前,圖形驗證碼校驗

1:生成圖形驗證碼後,存入域中。

2:驗證圖形驗證碼,並且不為空。

e.24小時傳送5次限制

只能使用次數做判斷,放入域中,使用者id作為key,使用次數作為value,使用一次,value加1,每次驗證大於5時,拒絕使用。(key不存在時第一次驗證存1,key存在時,value+1);

f.驗證成功後直接進行下一步操作,避免被劫持修改狀態進行後續操作,簡訊驗證被繞過。

驗證完直接操作,避免特權碼,或者萬能碼存在

簡訊驗證碼防刷策略

簡訊驗證碼作為重要的身份驗證工具,因其操作簡便 安全性高 時效性強等優點已被開發人員廣泛使用。但因其獲取便利 限制較少容易被不法分子利用進行簡訊轟炸,惡意刷掉大量簡訊費用,給公司或個人造成大量的金錢損失,造成這種情況原因主要是在產品實際設計過程中,有些產品人員因為對技術實現不太了解,防範意識薄弱,簡...

簡訊驗證碼

簡訊驗證碼 圍繞以下兩個方法開展 1 sendcaptcha 獲取驗證碼 2 commitcaptcha 提交驗證碼 方法 1 addtextchangedlistener 文字變化 2 requestfocus 請求焦點 3 string phone etphonenum.gettext tost...

簡訊驗證碼

你的key access key secret 你自己的key 注意 不要更改 region cn hangzhou product name dysmsapi domain dysmsapi.aliyuncs.com acs client acsclient access key id,acces...