文号
t16662
阅读
4417
回复
7
收藏
8
新式验证码
2009/06/30
IP:辽宁
我见过的验证码中,百度的算是相当高明的了。没想到竟然会有人破解(比如93,和以前蒂兰圣雪的作者)。
因此我考虑了一种更搞的验证码。当然,这不是给所有的网站都能用的。而且我这也不是非常新奇。
现在的应用,在我的实验基地NeoAtlantis上(注册后需要激活才能发帖,这时就看到了。注册时的验证码不是我说的!网址XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX)。

很简单,验证码就是一些高中甚至大学的题目。不是所有人都能做上来,但是用来识别的程序目前看是一定做不上来。

为了避免通过记录图片地址获取答案的顺藤摸瓜,验证码需要如此工作:

首先,数据库内有两个表A、B。A表记录:ID,图片名称,图片对应的答案;B表记录MaskCode、ID。每次调用验证码,先在A表中任意选取一条记录,取出其中的图片名称(文件名)。利用程序将系统中对应的文件改成另一个随机的名字XX。然后,将这条记录中的图片名称更新,并在B表中加入新的记录,其中的MaskCode就是这个新的随机名字XX,ID为A表中所选记录的ID。
接着,根据XX,将图片显示给用户,一并传递给浏览器XX。用户做题,得到答案,提交给服务器数据后,服务器在B表中根据MaskCode=XX找到ID,并从A表中找到答案。于是比对,就做出判断。最后,删除B表中的这条记录(释放空间,注意到不见得所有的用户都会回答,为了避免恶意请求让数据库爆满,还需要删除过期的记录,这需要另一个字段)。
由于一切都在幕后操作,用户无法得知图片名和答案的对应关系。只要图片足够多(或者以题目颜色加入干扰物),用户也难以用识别图片特征的方法得知图片特征和答案的对应关系。试图分离图片中的干扰物,不能避免题目中的一些图像也被删除。
未命名sd.jpg
17年7个月前IP:未同步
117042
1楼
晕
DVBBS.PHP的那种93估计就不行了
不过做到这样足够证明93的能力
引用
评论
17年7个月前IP:未同步
117056
2楼
恩
不过LS的连支付宝的都识别不出来吧 XD
支付宝那个验证码我识别率100%欧耶~
引用
评论
17年7个月前IP:未同步
117057
3楼
有些网站的验证码,我用眼睛都很难识别出来。
引用
评论
17年7个月前IP:未同步
117112
4楼
以前进过一几个站
有几个比较变态
一个事散乱的字符碎片 拼图形式的字母 ..
还有一个 是随机一句英文 回答一个问题 答案是超长的那种..
然后还有个是一个俄文的音频 说出曲名
引用
评论
17年7个月前IP:未同步
117121
5楼
应该发到计算机板
识别验证码先要收集验证码。这种题库我想办法将其全部收集,不就能一一对应解出来了
引用
评论
17年7个月前IP:未同步
117139
6楼
Re:应该发到计算机板
引用第5楼tshikosu于2009-07-01 11:05发表的 应该发到计算机板 :
识别验证码先要收集验证码。这种题库我想办法将其全部收集,不就能一一对应解出来了

MS这些题不难耶,至少这道不难!!
引用
评论
17年6个月前IP:未同步
117621
7楼
虽然有一定创新性~但还是推荐发到计算机版。因为我对于程序方面一窍不通,无法对此帖作出评价,即使是篇值得加分乃至加精的文章,我也看不出来。
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的