导语:
我们经常会在网上银行、手机银行上看到图形验证码这个东西,这个不仅能保障我们的资金安全,还能保护我们的个人信息,那么图形验证码你知道这个是什么吗?又如何设计出来呢?接下来宜享花来告诉你。
验证码(CAPTCHA)即“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。
它有什么作用呢?
简单概括如下:
验证码在网络投票、交友论坛、网上商城等业务中,经常用来防止恶意用户侵入、恶意灌水、刷票,爆破、撞库、接口滥用等问题,为防止客户端用程序进行自动识别,因此图片中通常要加上一些干扰象素,由用户肉眼识别其中的验证码信息。客户输入表单提交时,验证码也提交给网站服务器,只有验证成功,才能执行相应的操作,其在Web安全中有着重要的应用。
好了,废话不多说,为了回答我们最初的问题,我们必须要知道图形验证码在设计和使用中有哪些坑,哪些地方容易出问题。
如何设计出一个相对安全的图形验证码呢?
设计上:
1)验证码字符集合和长度应可配置,至少四位,不允许单独使用英文字符或数字。
2)验证码要能够置设置背景色、字符颜色、字符旋转、扭曲、字符粘连等,要添加干扰线,干扰线的颜色、尺寸和数量要可通过配置进行设定。
3)验证码生成过程中不仅要使用安全随机函数还要确保种子绝对随机的,保证每次生成验证码的唯一性和不可预测性,防止重放攻击。
4)针对一次请求生成的验证码只能用一次,用完立即过期。每次生成的验证码不允许跨会话和请求使用。
5)验证码内容不允许以任何形式输出到客户端包括验证码的MD5值、 Base64转码值等。
另外图形验证码使用上应注意:
验证码参数和认证参数需要一起提交,到后端验证时要先验证验证码,正确后再进行后续认证。后台系统中验证码的验证逻辑要先于口令的验证,只有通过验证码的验证后才能进行用户名、口令等其他身份信息的验证过程。线上系统不应存在万能验证码,或不验证验证码内容的情况。
以上就是关于图形验证码的相关知识,想要了解更多,欢迎咨询宜享花,我们将竭诚为您服务。
扫一扫,或长按识别二维码
关注贝塔网官方微信公众号
我们有直面错误的勇气,点击按钮即可发言。
您也可以邮件:
prnews@iresearch.com.cn