图片验证码
作用
当一个操作,涉及到用户隐私安全,或者代价比较高的时候。需要考虑到结合图片验证码。
比如登录接口,如果没有图片验证码。
那么,可能会被恶意用户暴力破解,造成服务器压力较大,或者用户安全隐患。
实现方式
安全性的基础
安全的基础,是因为图片识别的成本较高。
而生成图片的难度不算太高。
但是这一切都有一个很大的假设,那就是图片识别的成本较高,机器无法暴力破解。
不过随着机器学习的技术日新月异,图片识别能力越来越强,并不能保证图片无法被识别。
提升门槛
我们可以给图片添加噪点,扭曲,干扰线,动态等等。
这样提升了安全性,同时也带来了另外一个问题。用户在输入的时候,验证码经常也输入不对。
所以,这里一定要有一个平衡。
让人眼基本便于识别,同时让机器不那么容易识别。
识别图片验证
很多公司都会选择图片识别作为认证。
比如 steam/12306 让点击属于某个物体的图片。
优点
相对来说比较安全。
缺点
为了避免被机器破解,图片一般比较模糊。
而且要点及多次,比较麻烦。
个人不是很喜欢。
滑块验证
滑块验证
把图片滑倒缺口处。
比如 qq 登录,就会经常用到滑块验证。
并且会统计对应的操作时间。
优点
这个是个人比较喜欢的验证方式。
操作简单。
拓展进阶
操作时间其实可以进一步过滤,因为用户操作会有一个统计信息。
我们取正态分布中的 90% 的中间范围,如果不在范围内,则认为是机器操作,直接过滤掉。
鼠标点击
比起滑块,还有一种验证方式。
那就是让用户自己点击一下页面按钮。
原理
应该是记录鼠标轨迹之类的,可能需要机器学习,或者规则验证是否为人类所为。
优点
操作比滑块还要方便。
缺点
这种破解起来过于简单。
简单的按键精灵之类的,就可以脚本破解。
小结
每一家公司都有保护用户隐私安全的义务,只可惜现实中很多用户的隐私安全依然无法保证。
对于一个国家,需要推行相应的法律合规。
对于一家公司,需要架构,安全部门,产研测的共同努力。
对于一位用户,我们也要有保护自己信息安全的意识。
希望本文对你有所帮助,如果喜欢,欢迎点赞收藏转发一波。
我是老马,期待与你的下次重逢。
参考资料
无