-- 作者:hyichun1997
-- 发布时间:2006/9/25 15:06:49
-- 强烈抗议黄色垃圾贴,杜绝垃圾群发的方法
方法一: 1.打开reg.asp文件 先找到: answer=md5(Request.form("answer"),16) End If 其下面增加: \'ssa加入防止恶意注册必填项 If Request.form("Forumname")="" Then Response.redirect "showerr.asp?ErrCodes=<li>您没有回答“防恶意注册问题答案”!&action=OtherErr" Else If Request.form("Forumname")<>Dvbbs.Forum_Info(0) Then Response.redirect "showerr.asp?ErrCodes=<li>请回答正确的“防恶意注册问题答案”!&action=OtherErr" End If End If 再找到: TempLateStr=Replace(TempLateStr,"{$user_belief}",Selectinfo(5)) 在其下面添加一行: TempLateStr=Replace(TempLateStr,"{$Forumname}",Dvbbs.Forum_Info(0)) 2.后台界面风格模板总管理page_login template.html(13)中找到 <TD class=tablebody1><B>问题答案</B>:<BR>忘记密码的提示问题答案,用于取回论坛密码</TD> <TD class=tablebody1> <INPUT type=text size=30 name=answer> </TD></TR> 后面添加: <TR> <TD class=tablebody1><B>本论坛的中文名字是什么?</B><BR><font color=red>此条为防止恶意注册必填项!<br> 答案:</font><input type="text" value={$Forumname} onclick="oCopy(this)" readonly style="border-left:none; border-right:none; border-top:none; border-bottom: 1 solid blue;background:transparent;width:180px;color:blue"> <button style="font-size:12px; cursor:help; border-left:none; border-right:none; border-top:none; border-bottom:none; background:transparent" onclick="window.clipboardData.setData(\'text\',this.previousSibling.value)"> <font title="点击即可复制答案">(点击复制)</font></botton></TD> <TD class=tablebody1> <INPUT maxLength=50 size=30 name=Forumname></TD> </TR> <TR> <TD class=tablebody1><B>OICQ号码</B>:<BR>强烈推荐填写,方便在论坛上互动联系<font color=red>(4--13位)<br><font color=green>请填写真实的QQ号,方便浩天与您联系</font></TD> <TD class=tablebody1><INPUT maxLength=50 size=30 name=OICQ><font color=red>*</font>假的就别填写啦!</TD> </TR> 红色的代码为注册增加QQ项如果不需要可以取消,只加蓝色的代码。 方法二:使用增强的验证码 这是一个比较正式使用比较广泛的做法。将你联想到手机强大的手写识别功能后,你就会对这种方法的可*性提出怀疑。但是如何更好地增大软件的识别难度,仍是大家努力的方向。 方法三:让注册者回答固定问题 软件能识别验证码,但是绝对不会识别诸如以下文字:“请回答三加二等于几,用英文表示”。人工智能还达不到这种水平。基于这种思路,我们就可以让注册者回答问题。但这个问题绝对不要写成:“请回答本论坛的名字”,“今天是星期几”,“请复制以下文字”之类的易破解问题。你可以考虑让用户回答与论坛有关的话题。假设你的论坛是讨论金庸的。你可以这样说:“为证明你是一个金庸迷,请回答以下问题:《射雕英雄传》的东邪西毒南帝北丐中,西毒是谁”。 我这里只给出了思路,由于时间关系,还没有写相应的实现代码。如果大家支持本帖,我会在下次补上。当然也希望热心人把修改方法提供给大家。 方法四:让注册者回答随机问题 显然,这是上个思路的一点改进。至于在效果上是否有区别,还未实践证明。 这里我给出了修改方法。蓝色代码为已存在代码,红色代码是新增加代码。 1. 进入后台,风格界面模板总管理,page_login,template.html(13) <TR> <TD class=tablebody1><B>密码问题</B>:<BR>忘记密码的提示问题</TD> 在此两句上面添加如下代码 <TR> <TD class=tablebody1> <div style="color:red"><b>反论坛群发必填项:</b></div> <div>为了防止群发软件的恶意注册,</div> <div>请回答以下问题</div> <div style="color:blue;font-size=18px"><b>{$EvilQuesion}<b></div> </TD> <TD class=tablebody1><INPUT size=30 name=evilanswer> </TD> </TR> 2. 打开reg.asp,找到 <!--#include file="inc/md5.asp"--> 在其下添加 <!--#include file="inc/CheckEvil.asp"--> 找到 TempLateStr=Replace(TempLateStr,"{$user_belief}",Selectinfo(5)) 在其下添加 Randomize Session("EvilID")=int(Rnd*QuesionNum) TempLateStr=Replace(TempLateStr,"{$EvilQuesion}", QuesionArray(Session("EvilID"))) 找到 Else quesion=Request.form("quesion") End If 在其下添加 If Request.Form("EvilAnswer")="" Then ErrCodes=ErrCodes+"<li>"+"请填写防恶意注册问题!" End If
If Not CheckEvil(Request.Form("EvilAnswer")) Then ErrCodes=ErrCodes+"<li>"+ "防恶意注册问题回答错误,请返回重试。" End If
3. 增加一个新文件CheckEvil.asp,填写如下代码,并上传到论坛inc目录下,即 /inc/CheckEvil.asp。 <% Dim QuesionArray(100) Dim AnswerArray(100) Dim QuesionNum QuesionNum=5 \'请在这里正确设置问题的总数 Function CheckEvil(Answer) Dim TrueAnswer If Session("EvilID")="" Then CheckEvil=False Exit Function End If TrueAnswer=CStr(AnswerArray(Session("EvilID"))) If Answer=TrueAnswer Then CheckEvil=true End If
End Function QuesionArray(0)="12的平方是多少?(数字)" AnswerArray(0)="144" QuesionArray(1)="中国最长的河流叫什么名字?" AnswerArray(1)="长江" QuesionArray(2)="“举头望明月”的下句是什么?(提示:低头??乡)" AnswerArray(2)="低头思故乡" QuesionArray(3)="“举头望明月”的下句是什么?(提示:低头??乡)" AnswerArray(3)="低头思故乡" QuesionArray(4)="中国史上唯一的女皇是谁?(提示:武?天)" AnswerArray(4)="武则天" %>
|