而在設計短信驗證碼的過程中,並不是說只需要簡單實現發送壹個驗證碼就行,還需要註意到其他的譬如 安全問題,成本問題 等等,主要有以下幾個大方面:
壹.署名
現在的短信驗證碼設計中, 壹般都會把APP或者網站名放在開頭並用中括號括起來 ,用來表明是哪個APP或者網站發送的驗證碼。
如果壹個用戶短時間申請登錄或註冊路多個軟件,那麽由於短信的發送延遲問題,把署名放在頭部能讓用戶壹眼能看出該驗證碼屬於哪個APP,避免將壹個軟件的驗證碼錯認為另壹個軟件,出現錯誤。
二.驗證碼長度
目前的短信驗證碼長度壹般會在4位到6位,6位居多,為什麽會是四位到六位呢?
從安全方面來講, 普通機器遍歷四位驗證碼需要10的4次方,六位驗證碼則需要10的六次方,耗時至少幾分鐘,而驗證碼的有效期也僅僅幾分鐘,這點後面再講。
從人的方便性和記憶來講,4到6位的驗證碼對於普通人來說,剛好能夠記住,再長就會有些吃力了。
三.驗證碼有效期
為什麽要設置驗證碼有效期?
第壹,上壹點提到,為了防止機器遍歷驗證碼來達成攻擊目的,在機器完成遍歷之前使驗證碼失效即可有效防止。
第二,由於發送驗證碼存在發送延遲的現象,如果用戶申請發送驗證碼之後未收到驗證碼,用戶就會短時間多次申請驗證碼,在有效期內申請的驗證碼相同,防止用戶申請多次驗證碼後成功之前的驗證碼但校驗失敗。
但這種方式只適用於壹些不算太嚴謹的場合,像銀行轉賬的相對嚴謹的場合來說,申請獲取壹次驗證碼就會重新生成壹次。
四.限制驗證碼申請
有些人會利用短信驗證碼的方式對他人進行騷擾,通過頻繁的對他人的手機號進行請求短信驗證碼的方式,影響他人的正常使用,所以對於同壹APP來說,通常會存在六十秒鐘只能請求壹次。
壹是為了避免上壹點中提到的延遲問題。
二就是為了防止有心人通過驗證碼的方式騷擾他人,並且很多APP都會對同壹手機號在某個時間段內的發送次數進行限制,例如在二十四小時內,同壹手機號只能申請五次,超過次數後就會拒絕發送並提示二十四小時後再試。
五.末尾加入防詐騙
不懷好意的某些人會通過短信驗證碼的方式進行詐騙
例如:在短信中寫上您的銀行卡正在進行轉賬,然後如有疑問請點擊鏈接或撥打某手機號的方式,讓妳進入他的圈套之中,這種事情屢見不鮮。
所以,短信驗證碼後加入詐騙提醒,例如提醒用戶,正常短信中並不會出現鏈接或手機號,也不會主動撥打用戶手機號,來防止有心人利用驗證碼進行詐騙
六.說明驗證碼用途
在短信中說明該驗證碼的用途,壹是提醒用戶該驗證碼是用來幹什麽的,二是防止壹些人盜用他人的手機號來獲得驗證碼,提醒號主有人在利用他的手機號幹些什麽事情,幫助用戶提高警惕。
以上就是我總結的全部和驗證碼設計相關的註意點,期待妳的點贊