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