怎么写出一个"好"的验证码 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
WWd0g
V2EX    信息安全

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

  •  
  •   WWd0g 2016-11-06 19:41:11 +08:00 4047 次点击
    这是一个创建于 3262 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    时效性

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

    复杂度

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

    用户体验

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


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

    • 时效性:时间限制(5 分钟内有效)
    • 复杂度:数字组合(长度 4 位)

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

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


    顺便求职

    • 求职工种:php 程序员

    • 工作经验:一年

    • 工作地点:成都

    • 熟悉语言:php,python

    • 其他技能:爬虫,安全

    • 个人博客:www.wd0g.com

    • 联系电话:18723996897

    • 联系邮箱:[email protected]

    其他

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

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

    11 条回复    2016-11-07 08:03:28 +08:00
    shiny
        1
    shiny  
       2016-11-06 19:52:45 +08:00
    复杂度部分,还没提到什么样的图形验证码容易被识别,以及一些常见的识别算法。
    WWd0g
        2
    WWd0g  
    OP
       2016-11-06 20:00:40 +08:00
    @shiny 这个因为不是太熟悉,就没写了,我博文中有提起
    nolo
        3
    nolo  
       2016-11-06 20:02:23 +08:00
    验证码的目的是区分是不是机器。不应该在“验证码“上做文章,应该在区分人和机器人。如果算法算出很明显是“人”,不应该为难用户。我觉得很多网站在这点上本末倒置。
    lhx2008
        4
    lhx2008  
       2016-11-06 20:05:22 +08:00 via Android
    没有干货,验证码本来就应该是区别人和电脑,而不是长度什么的
    powergx
        5
    powergx  
       2016-11-06 20:24:13 +08:00 via iPhone
    人肉打码 轻松破之
    Ouyangan
        6
    Ouyangan  
       2016-11-06 20:25:15 +08:00
    我觉得*验很不错
    WWd0g
        7
    WWd0g  
    OP
       2016-11-06 20:39:26 +08:00
    @lhx2008
    @nolo
    我主要从安全的角度讲啦,当然我也认同你们的看法,但是我觉得实现起来还是难道高
    bdbai
        8
    bdbai  
       2016-11-06 20:48:38 +08:00 via Android
    顺便问下绕过验证码有哪些思路?
    ic2y
        9
    ic2y  
       2016-11-06 20:51:36 +08:00
    生产噪声需要知道 怎么 针对性对抗 机器学习的识别
    v1024
        10
    v1024  
       2016-11-07 07:51:48 +08:00 via iPhone
    错误后直接实效不就行了?何来 999 次一说?
    j8sec
        11
    j8sec  
       2016-11-07 08:03:28 +08:00 via iPhone
    NoCaptcha
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1045 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 18:03 PVG 02:03 LAX 11:03 JFK 14:03
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86