在移动互联网时代,大量的网站、手机app和小程序等都在使用短信验证码作为验证用户身份的安全技术措施。在电商节和节假日期间,企业的促销、抽奖、互动活动等也让会员营销短信迎高峰期,生活中企业与用户之间用到短信的场景非常频繁。
但根据创蓝253多年的服务经验来看,企业短信验证码遭到盗刷刷量的现象也不在少数。曾经出现不少企业用户业务的短信验证码功能被攻击,短信接口被恶意利用,导致业务无法正常访问的情况。此外,短信遭受盗刷也会造成企业营销和运营资金的流失。
创蓝253提出了八招防范短信接口被刷的方法:
第一,手机号码的有效性和真实性检测:在注册登录窗口增加号码的真实性和有效性检测,防止恶意盗刷者使用无效的或非法的号码,第一时间屏蔽乱码数字的号码。
第二,隐藏的验证码随机校验在注册页添加个隐藏的的随机验证码,发短信前验证一下,确保短信验证码的请求是在真实的页面上点击。
第三,增加一些简单的图形验证码:在用户进行“获取动态短信”操作前,先让用户识别图片验证码,通过图形验证后,才能将动态的短信验证码发送到用户手上,该方法可有效缓解短信轰炸问题。
第四,同号码短信发送频率限制:一般来说,无论是短信服务商还是企业,都应该设置同一号码的短信验证码请求限制,当单个用户请求发送一次动态短信之后,服务器端应该限制在一定时长之后(此处一般为30-60秒),才能进行第二次动态短信请求。该功能可进一步保障用户体验,避免包含手动攻击恶意发送垃圾验证短信。
第五,不同号码请求数量限制:根据业务特点,针对不同手机号码、不同访问源IP访问请求进行频率限制,防止高并发非法请求消耗更多的短信包和服务器性能,提高业务稳定性。
第六,场景流程限定:将手机短信验证和用户名密码设置分成两个步骤,用户在填写和校验有效的用户名密码后,下一步才进行手机短信验证,并且需要在获取第一步成功的回执之后才可进行校验。
第七,启用https协议:为网站配置证书,启用https加密协议,防止传输明文数据被分析。
第八,单IP请求限定:同一IP和同一手机号码一样,当某个IP地址请求发送一次动态短信之后,服务器端应该限制在一定时长之后(此处一般为30-60秒),才能进行第二次动态短信请求。同时设置同一天同一IP的短信验证码请求次数限制,免攻击者通过同一个 IP 盗刷大量的企业短信验证码条数。
创蓝253分控部门负责人认为:任何事情都需要一定的安全防控措施,企业可以根据业务的实际情况考虑,从以上的8个方法中选择并组合成最适合自身的最佳方案,防止短信接口被盗刷。并且提高技术人员在实际活动中的安全意识,提前防范风险。