验证码应该怎么设计?

如题所述

第1个回答  2022-08-02
短信验证码现在在我们的生活当中应用越来越广泛,几乎所有的网站,软件等在注册登录等功能上都需要通过发送短信验证码的方式来验证用户的身份和确保非机器人。

而在设计短信验证码的过程中,并不是说只需要简单实现发送一个验证码就行,还需要注意到其他的譬如 安全问题,成本问题 等等,主要有以下几个大方面:

一.署名

现在的短信验证码设计中, 一般都会把APP或者网站名放在开头并用中括号括起来 ,用来表明是哪个APP或者网站发送的验证码。

如果一个用户短时间申请登录或注册路多个软件,那么由于短信的发送延迟问题,把署名放在头部能让用户一眼能看出该验证码属于哪个APP,避免将一个软件的验证码错认为另一个软件,出现错误。

二.验证码长度

目前的短信验证码长度一般会在4位到6位,6位居多,为什么会是四位到六位呢?

从安全方面来讲, 普通机器遍历四位验证码需要10的4次方,六位验证码则需要10的六次方,耗时至少几分钟,而验证码的有效期也仅仅几分钟,这点后面再讲。

从人的方便性和记忆来讲,4到6位的验证码对于普通人来说,刚好能够记住,再长就会有些吃力了。

三.验证码有效期

为什么要设置验证码有效期?

第一,上一点提到,为了防止机器遍历验证码来达成攻击目的,在机器完成遍历之前使验证码失效即可有效防止。

第二,由于发送验证码存在发送延迟的现象,如果用户申请发送验证码之后未收到验证码,用户就会短时间多次申请验证码,在有效期内申请的验证码相同,防止用户申请多次验证码后成功之前的验证码但校验失败。

但这种方式只适用于一些不算太严谨的场合,像银行转账的相对严谨的场合来说,申请获取一次验证码就会重新生成一次。

四.限制验证码申请

有些人会利用短信验证码的方式对他人进行骚扰,通过频繁的对他人的手机号进行请求短信验证码的方式,影响他人的正常使用,所以对于同一APP来说,通常会存在六十秒钟只能请求一次。

一是为了避免上一点中提到的延迟问题。

二就是为了防止有心人通过验证码的方式骚扰他人,并且很多APP都会对同一手机号在某个时间段内的发送次数进行限制,例如在二十四小时内,同一手机号只能申请五次,超过次数后就会拒绝发送并提示二十四小时后再试。

五.末尾加入防诈骗

不怀好意的某些人会通过短信验证码的方式进行诈骗

例如:在短信中写上您的银行卡正在进行转账,然后如有疑问请点击链接或拨打某手机号的方式,让你进入他的圈套之中,这种事情屡见不鲜。

所以,短信验证码后加入诈骗提醒,例如提醒用户,正常短信中并不会出现链接或手机号,也不会主动拨打用户手机号,来防止有心人利用验证码进行诈骗

六.说明验证码用途

在短信中说明该验证码的用途,一是提醒用户该验证码是用来干什么的,二是防止一些人盗用他人的手机号来获得验证码,提醒号主有人在利用他的手机号干些什么事情,帮助用户提高警惕。

以上就是我总结的全部和验证码设计相关的注意点,期待你的点赞
相似回答
大家正在搜