短信验证码是指向用户的手机发送随机数字或字母的验证码,来验证用户身份的安全机制。
典型的应用场景
1、用户注册
2、密码修改
3、身份验证
4、支付设置
验证码通常存在于web端或app内,由用户触发,通过后端接口下发。用户收到验证码后,再提交校验,从而达到一个双重保险的作用。由于是用户操作,难免会出现重复提交,或恶意刷信验证码等操作,作为开发者应该考虑到这个问题,并作出相应的措施。
为什么要防刷
1、防止恶意注册
2、防止用户频繁操作
3、防止暴力破解
4、提高用户体验
如何防刷
1、发送按钮禁用/倒计时
用户点击按钮后,立即禁用按钮,并显示60秒的倒计时,防止用户在等待时验证码到达手机之前,频繁点击按钮,重复请求。
2、增加图形验证码/滑动验证码等
这一步主要是为了防止机器人自动填写,自动化脚本攻击
3、限制ip
对同一ip的请求,可以限制在一个时间段内不能发送,有效降低风险
4、数据加密
可以将用户的手机号加密,从而降低刷信风险
做好以上几点,既可以提升用户体验,也可以有效的防止验证码被刷。如有疑问,请联系我们。