修改验证码为加法运算问题,有效防止广告信息

引用内容 引用内容
  每天清理Blog的广告评论和留言就得花上不少时间,甚至有一次3天没上网,打开Blog发现90多条广告评论,顿时觉悟:是时候改进PJ的验证方式了。最近看到mifly的WP上采用了新的验证码,形式是一道加法运算题,简单明了,而且也对于浏览者来说,填写一个1到2位数的答案,比起填写4到6位数的验证码舒服多了。
  于是自己稍微研究了PJ的验证码机制,参照BoBlog的类似功能,做一点改动,初步实现加法运算形式的用户验证。当然WP上那个算法验证码是随机生成的,技术含量比我这个简单的小修改强很多,具体修改效果如下:


修改方法:
1. 打开common目录下的function.asp,在大约50行左右可以找到以下代码:


程序代码 程序代码
'*************************************
'获得注册码
'*************************************  
Function getcode()
        getcode= "<img src=""common/getcode.asp"" alt="""" style=""margin-right:40px;""/>"        
End Function


2. 将其替换为以下代码:

程序代码 程序代码
'*************************************
'获得注册码
'*************************************  
'Function getcode()
        getcode= "<img src=""common/getcode.asp"" alt="""" style=""margin-right:40px;""/>"        
'End Function

'*************************************
'获得注册码,运算问题
'NewValidate For PJblog2 BY Bigheadlyf
'更新时间: 2007-4-4
'*************************************
Function getcode()

Dim QuesionNum
QuesionNum=7  '问题的总数,如要添加问题,请先修改这个数值
Dim CodeIndex
CodeIndex=0

Dim QuesionArray(100)
Dim AnswerArray(100)

QuesionArray(0)="= 1 + 1"                       '问题列表及答案,可自行修改
AnswerArray(0)="2"
QuesionArray(1)="= 2 + 2"
AnswerArray(1)="4"
QuesionArray(2)="= 3 + 4"
AnswerArray(2)="7"
QuesionArray(3)="= 2 + 4"
AnswerArray(3)="6"
QuesionArray(4)="= 1 + 2"
AnswerArray(4)="3"
QuesionArray(5)="= 2 + 3"
AnswerArray(5)="5"
QuesionArray(6)="= 4 + 4"
AnswerArray(6)="8"

Randomize
CodeIndex =  Int((QuesionNum * Rnd) + 0)
Session("GetCode") = AnswerArray(CodeIndex)
getcode = "<span style=""margin-right:40px;"">" & QuesionArray(CodeIndex) & "</span>"
End Function


3. 保存文件,上传到服务器,测试~

4. 其他修改建议:
问题可以设置为加减乘除任意问题或者其他文字问题,例如“987 x 654 = ?”、“中国有几个少数民族?”等等,不要让浏览者答不上就可以了:P。
建议将验证码输入框宽度改小些,且最大输入字符数设置为2。

posted on 2008-10-04 09:27  网络安全、asp、asp.net编程  阅读(494)  评论(0编辑  收藏  举报

导航