怎么写出一个"好"的验证码

2016-11-06 19:41:11 +08:00
 WWd0g

图片验证码,短信验证码,邮件验证码 这些验证码的目的可能是为了防止机器人,黑客攻击,权限管理等等

但是如何才能写出一个好的验证码呢(主要从安全的角度看)?

我觉得满足以下几点,可能就是个好的验证码了:

  • 时效性
  • 复杂度
  • 用户体验

时效性

  • 时间限制(验证码发出几分钟内验证有效)
  • 次数限制(多少次验证内,验证码有效)

复杂度

  • 字母组合
  • 数字组合
  • 字母+数字组合 长度 4-6 位

用户体验

能一次完成的操作,让用户两次进行就不是一个好的体验


拿手机验证码举例子,我选择以下几种组合来做短线验证码

上面这种情况可能会出现一个问题,5 分钟内,只需要进行 9999 次猜解

即可绕过这种情况,实际例子很多,但是直接把 APP 名字发出来还是不太好


顺便求职

其他

其实我博客写的比较详细,只是文笔太差...不好意思发,所以重新总结了下

本文只是我多次尝试绕过各种 APP 验证码的经验总结,无任何装逼成分,别说我装逼了,我怕...

3447 次点击
所在节点    信息安全
11 条回复
shiny
2016-11-06 19:52:45 +08:00
复杂度部分,还没提到什么样的图形验证码容易被识别,以及一些常见的识别算法。
WWd0g
2016-11-06 20:00:40 +08:00
@shiny 这个因为不是太熟悉,就没写了,我博文中有提起
nolo
2016-11-06 20:02:23 +08:00
验证码的目的是区分是不是机器。不应该在“验证码“上做文章,应该在区分人和机器人。如果算法算出很明显是“人”,不应该为难用户。我觉得很多网站在这点上本末倒置。
lhx2008
2016-11-06 20:05:22 +08:00
没有干货,验证码本来就应该是区别人和电脑,而不是长度什么的
powergx
2016-11-06 20:24:13 +08:00
人肉打码 轻松破之
Ouyangan
2016-11-06 20:25:15 +08:00
我觉得*验很不错
WWd0g
2016-11-06 20:39:26 +08:00
@lhx2008
@nolo
我主要从安全的角度讲啦,当然我也认同你们的看法,但是我觉得实现起来还是难道高
bdbai
2016-11-06 20:48:38 +08:00
顺便问下绕过验证码有哪些思路?
ic2y
2016-11-06 20:51:36 +08:00
生产噪声需要知道 怎么 针对性对抗 机器学习的识别
v1024
2016-11-07 07:51:48 +08:00
错误后直接实效不就行了?何来 999 次一说?
j8sec
2016-11-07 08:03:28 +08:00
NoCaptcha

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/318525

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX