美文网首页
验证码安全基础

验证码安全基础

作者: 小小怪吃吃吃 | 来源:发表于2018-09-27 13:57 被阅读0次

常见的验证码问题:

问题一:验证码是否出现的判断逻辑放在客户端浏览器

有些系统默认不显示验证码,而是在用户校验错误一定次数之后再出现。 那如何判断用户已经错误几次了呢?没有经验的开发可能这样做: 在cookie中写入一个标记,比如loginErr = 1,后续错误累加 在session中写入一个标记,例如loginErr = 1,后续错误累加 问题在于,要是恶意访问者不带Cookie提交HTTP请求呢?或者不更新Cookie中的loginErr的值反复提交呢?

程序因为无从获取Cookie/sessionID,会认为用户是首次访问。无论什么时候,验证码都不会出现!

问题二:验证码不过期,单个验证码反复可用

多数时候,验证码在web服务器上对应一个session值。

如果完成一次校验,不标记这个session已失效,就会造成同一验证码反复可用。

此时,验证码将不再有用。

恶意访问者在cookie中带固定的sessionID和固定的一个验证码字符串,即可轻松爆破。

还有一种很常见的代码实现,更新session的工作是通过重新下载验证码达到的。

而开发人员容易犯的一个失误,是把更新session的任务交给客户端浏览器。

比如302重定向,甚至是通过js、meta refresh重定向页面,来引导用户重新下载验证码。

这些做法实际是错误的,要是用户拦截了重定向,没有发出新的下载请求呢? 这样,上次的验证码是否还可以使用?

基本的认知是:一个验证码,只能使用一次。使用之后,立即过期,不可再次使用。

问题三:将验证码内容输出到客户端

无论出于什么考虑,都不应该把验证码的内容发送到客户端cookie、或输出到response headers的其他字段。

比如,写入验证码的MD5值、 Base64转码等,太容易被逆向破解,得到原值。

即便是加固定salt后输出,都是很不好的。

问题四:验证码太弱

一般,出现逻辑错误的验证码,同样存在太弱的通病,使用开源的tessertact OCR引擎,不经任何训练,不人工去噪处理,也能识别互联网上的大部分验证码!

相关文章

  • 验证码安全基础

    常见的验证码问题: 问题一:验证码是否出现的判断逻辑放在客户端浏览器 有些系统默认不显示验证码,而是在用户校验错误...

  • gitlab_readme

    图形验证码组件 安全键盘组件

  • 生成随机验证码

    基础类方法:生成随机验证码

  • 常见验证码的弱点与验证码识别

    0x00 简介验证码作为一种辅助安全手段在Web安全中有着特殊的地位,验证码安全和web应用中的众多漏洞相比似乎微...

  • wueasy框架之验证码工具使用

    验证码工具 是一个解决通用验证码验证安全的问题,例如发送短信验证码、发送邮箱验证码等场景。 为什么要使用此工具? ...

  • GET新技能,web自动化没有你绕不过去的验证码!

    验证码识别解决方案 对于web应用程序来讲,处于安全性考虑,在登录的时候,都会设置验证码,验证码的类型种类繁多,有...

  • 几个安全测试的小问题

    最近遇到的几个安全问题,可以面试的时候作为面试经验 1.短信验证码复用:同一验证码可多次使用 解决方案:限制验证码...

  • 后来的时间都与你无关

    打开soulAPP,找到设置,点击账户安全,选择注销,获取验证码,填入验证码,点击确认。 我注销了使用了324天的...

  • 中正云:对于短信验证码安全的安全和预防!

    短信验证码接口相关工作的措施相当严紧,是验证码安全的最大担保。验证码是很敏感的内容,有经验的通道供应商会从五个方面...

  • 刷前必读

    问:在公众号里输入手机号与验证码安不安全? 答: 安全问题大家可以放心的,公众号内填写手机号与验证码仅为快速注册“...

网友评论

      本文标题:验证码安全基础

      本文链接:https://www.haomeiwen.com/subject/jnplkftx.html