有攻就有守,有矛就有盾。自古道高一尺魔高一丈,循还往复。用户验证就是这样一个情况,防刷与被刷,故事一直在延续。
起因
前面对接公司运营的需求,做一个渠道着陆页。运营提出要把原来的图形验证码去掉,说这样比较影响用户体验,渠道方也提出这样会影响转化率,他们还举出同类型公司的着陆页,他们没有用图形验证。运营作为以KPI为导向的部门,自然坚持要哪怕多一个用户的转化。
作为对接这个需求的产品,当然知道擅自取消图形验证的风险,同时技术、测试、运维相关人也不同意取消图形校验。以前就有过血的教训,被人刷了不少的短信。但运营还是不退让,还吵了起来。没办法,只能让他们云请求老板。老板不知是怎么考虑的,居然同意了。那也只能硬着头皮做了。
上线了一个月都没问题,真12月30日,要请放假那天下午,运营发现短信服务商那边的账户的所有短信都被刷完了。然后紧急处理,把图形验证都加一了,才防住。
为什么会有人攻击
无利不起早,来刷的人估计有以下几种。
第一种,渠道或者服务商。因为我们是一家互金平台,所以有人就想来找漏洞,看有没有机会捞点钱。比如一些渠道合作方式是按注册用户数来结算,那么渠道就可能用机器到合作方注册用户,这样就可以把引流数据拉起来。
第二种,短信轰炸平台。帮别人做骚扰用户,又不想自己教短信费,那就利用别人的平台免费发。
第三种,无聊或坏。这种人应该是没事干,刚好看到你这个漏洞,不干点事,就会觉得不自在。
第四种,竞争对手。为了搞同行,而支行攻击对方。
再有很多讲不清的原因,估计还有不少类型。但不管怎么样,做好验证码是非常必要的,不然将来是要吃亏的。
当前有效的验证方式
验证码的攻防不断升级,12306的验证码的进化就是一个缩影,因为它的利害关系人太多,需求一直都非常旺盛,利益诱惑也非常大。所以出来了一堆的抢平台。理论上任何的验证码,都可以被攻破,但须要考虑但成本。所以一些价值低的就没人来破,而那些有点巨大利益的地方每时刻都遭着巨量的攻击。
1.图形验证码
这个一种比较老的验证方式了,前后端同时生成一个字符组合,用户在前端输入,再做前后端比较。这种验证的好处是,成本低实现起来比较简单。但这个方法已经用了比较久,对于一些技术较高的人来讲,可比较容易攻破。
2.智能无感知
极致用户体验,多维度收集环境信息,安全用户只需轻点即可通过验证;可疑用户根据疑似程度弹出不同难度的验证码进行二次验证。这个其实靠的是第三方服务商的安全数据后台,用手机号、设备号、IP等信息做了一个安全模型,来识别风险用户,对低风险用户进行过滤。好处是,对绝大多数据正常用户,只需要点击一下就可以完成验证。当然这个也不保证能100%防住不受欢迎用户。再就是用第三方服务,自己平台的用户数据信息可能会收集,这是一个不得不权衡的事情。
3.图中点选:
触发式,鼠标移入验证条后显示验证图片,轻松接入,不影响网页原有的排版和美观。
嵌入式,点选验证区域直接完整嵌入网页,清晰直观,便于用户使用和广告宣传。
4.短信上行
触发式:鼠标移入验证条后显示验证拼图,轻松接入,不影响网页原有的排版和美观。
嵌入式:上行短信提示区域直接完整嵌入网页,清晰直观,便于用户使用。
5.滑动拼图
触发式:鼠标移入验证条后显示验证拼图,轻松接入,不影响网页原有的排版和美观。
嵌入式:拼图验证区域直接完整嵌入网页,清晰直观,便于用户使用和广告宣传。
现在验证已经成了一门生意,因为是太重要了,也可能是因为大家经历的血泪史。有很多的第三方在做验证服务,也包括一些大厂。从另个侧面也说明,做好验证码不容易。
体验-成本是动态平衡的,体验越好成本越高,成本越低体效果越差。并没有低成本,又有好体验的完美解决方案。所以决定用户什么样的验证方案,需要基于实际工作情况来权衡决策。