Rss & SiteMap
华夏网·艺术论坛 http://bbs.cnrr.cn/
方法一:
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)="武则天"
%>
方法五:
一、修改reg.asp文件
1、找到235行-246行的内容
在其下面插入
2、114行处找到——注意:这处可以不添加!
在其下面添加一行
二、然后再看风格处的修改,进入后台-界面风格模板总管理-page_login-风格 template.html(13)中找到
document.write ('<INPUT type=password maxLength=16 size=30 name=pswc>');
在其下面插入
至此结束,可以和那个JR的垃圾暴力说永别了!
大家也可以将ABCD123改成其他的字符串,让他想都想不到!!
以前,每天都会有50来个、有时候甚至更多的恶意注册的用户名;采取如下限制措施以后,就明显、有效地解决了问题,将注册机器人挡在了门外。因而,它们恶意注册以后自动发烂广告的现象,也就不会出现了。
下面是我编辑过的处理方法和代码:
实现的原理是:加一个必填当前日期+2的注册项。
第一步:在论坛后台的“风格界面模板总管理/分页面模板(page_login)/界面风格/template.html(13)”里面的适当位置,加入限制代码(红色部分为增加的代码):
<INPUT maxLength=50 size=30 name=e_mail>
<input type=button value='检测帐号' name=Button onclick="gopreview1()"></TD>
</TR>
<!--防止恶意注册-->
<TR>
<TD class=tablebody1><B>今天日期+2</B>:<BR>
限制恶意注册发垃圾广告 <font color=red><b>填写的日期范围:3-33</b></font></TD>
<TD class=tablebody1><INPUT type=text size=2 name=jintiandate maxlength=2>
<SCRIPT LANGUAGE=VBScript>
document.write "<font color=red> 今天是:"
document.write date()
document.write " (比如今天如果是2008-3-8,就填写10)</font>"
</script>
</TD>
</TR>
</table>
<!--结束-->
{$difference}
</table>
第二步:在reg.asp文件如下的相对位置,加入判断代码(红色部分):
If Request.form("quesion")="" Then
ErrCodes=ErrCodes+"<li>"+template.Strings(11)
Else
quesion=Request.form("quesion")
End If
<!--防止恶意注册-->
If cint(Request.form("jintiandate"))<>datepart("d",date)+2 Then ErrCodes=ErrCodes+"<li>"+"请填写加2以后的日期!"
End If
<!--防止恶意注册结束-->
If Request.form("answer")="" Then
ErrCodes=ErrCodes+"<li>"+template.Strings(11)
动网论坛防止“暴力营销恶意注册发广告”的方法
一、修改reg.asp文件
1、找到235行-246行的内容
If Request.form("quesion")="" Then
ErrCodes=ErrCodes+"<li>"+template.Strings(11)
Else
quesion=Request.form("quesion")
End If
If Request.form("answer")="" Then
ErrCodes=ErrCodes+"<li>"+template.Strings(11)
ElseIf Request.form("answer")=Request.form("oldanswer") Then
answer=Request.form("answer")
Else
answer=md5(Request.form("answer"),16)
End If
在其下面插入
'防止恶意注册添加项 by xintiao
If Request.form("Forumname")="" Then
Response.redirect "showerr.asp?ErrCodes=<li>您没有回答“防恶意注册问题答案”!&action=OtherErr"
Else
If Request.form("Forumname")<>"ABCD123" Then
Response.redirect "showerr.asp?ErrCodes=<li>请回答正确的“防恶意注册问题答案”!&action=OtherErr"
End If
End If
2、114行处找到——注意:这处可以不添加!
TempLateStr=Replace(TempLateStr,"{$user_belief}",Selectinfo(5))
在其下面添加一行
TempLateStr=Replace(TempLateStr,"{$Forumname}","ABCD123")
二、然后再看风格处的修改,进入后台-界面风格模板总管理-page_login-风格 template.html(13)中找到
document.write ('<INPUT type=password maxLength=16 size=30 name=pswc>');
在其下面插入
document.write ('<TR>');
document.write ('<TD class=tablebody1><font color=red><B>下面蓝色部分是什么?</B><BR>此为防止恶意注册必填项!请直接COPY答案:</font><font color=blue>ABCD123</font></TD>');
document.write ('<TD class=tablebody1>');
document.write ('<INPUT maxLength=50 size=30 name=Forumname></TD>');
document.write ('</TR>');
至此结束,可以和那个JR的垃圾暴力说永别了!
大家也可以将ABCD123改成其他的字符串,让他想都想不到!!
动网(Dvbbs)论坛防止机器注册
在 announcements.asp 的第一个 <% 下面加入代码:Session("AllowReg") = 1
在 reg.asp 的第一个 <% 下面加入代码:
If Session("AllowReg") <> 1 Then
Response.Write ("注册前请先浏览论坛公告")
Response.End
End iF
动网论坛防止恶意注册的几个方法
方法一:
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)="武则天"
%>
方法五:
一、修改reg.asp文件
1、找到235行-246行的内容
在其下面插入
2、114行处找到——注意:这处可以不添加!
在其下面添加一行
二、然后再看风格处的修改,进入后台-界面风格模板总管理-page_login-风格 template.html(13)中找到
document.write ('<INPUT type=password maxLength=16 size=30 name=pswc>');
在其下面插入
至此结束,可以和那个JR的垃圾暴力说永别了!
大家也可以将ABCD123改成其他的字符串,让他想都想不到!!
动网论坛防止恶意注册最简单最有效的方法
偶也是动网论坛爱好者的坚定支持者,以前也试过很多防止恶意注册的方法均不凑效.昨天晚上才把论坛挂上去,今天早上就出线了10多篇垃圾贴,恶意注册的。
如果用邮箱验证,发贴审核等虽然可以对付注册机软件,但是这样子会给用户带来不必要的麻烦,只会让论坛失去人气.下面就推荐给大家一种有效的方法,在使用之前可以先看一下
演示 http://www.wangyeba.com/bbs/reg.asp
http://bbs.admin5.com/register.php (同理对dz的论坛进行修改,点击以后注意后缀的改变成reg.php)
修改只需三步:
第一步:把原reg.asp更名为register.asp (也可以更名为其它任意值,但不要与现有的文件重复)
第二步:在论坛根目录下添加一个新的reg.asp文件,代码如下
<!--#include file="conn.asp"-->
<!--#include file="inc/const.asp"-->
<!--#include file="inc/plus_check.asp"-->
<%
Dv_plus.name="reg"'
Dv_plus.checklogin'
Dvbbs.LoadTemplates("")'
Dvbbs.Stats="论坛注册"
Dvbbs.Nav()
Dvbbs.Head_var 0,"","论坛注册","reg.asp"
'
%>
<table cellpadding=3 cellspacing=1 align=center class=tableborder1><form action="register.asp" method="post">
<tr><th align=center>论坛注册</td></tr>
<tr><td class=tablebody1 align=left><input type="hidden" name="{$hidden}" value="{$hidden}">
<BR><BR><p align="center">继续注册为本站用户之前您必须先仔细阅读并点击同意<a href="register.asp">服务条款和声明</a>
</P>
<BR>
<BR></td></tr>
<tr><td align=center class=tablebody2><input type="submit" value="下一步" name="submit"></td></tr>
</form>
</table>
<%
Set Dv_plus=Nothing
Dvbbs.Footer '
%>
第三步:登陆管理后台-风格界面模板总管理-编辑分页面模板(page_login) -界面风格-template.html(12)-找到
<table cellpadding=3 cellspacing=1 align=center class=tableborder1><form action="reg.asp?action=apply" method="post">
把以上代码修改为
<table cellpadding=3 cellspacing=1 align=center class=tableborder1><form action="register.asp?action=apply" method="post">
到这里你已经大功告成,远离恶意注册了.
注意:红色的regster.asp可以是任意以.asp结尾的文件名,但是不能和已经存在的文件名相同,而且一定要前后一致,否则论坛将不能正常注册
几种“动网论坛防恶意注册”的方法
方法一: 将reg.asp文件改成其它文件名如reg_new.asp传到论坛目录下面! 方法二: 让注册者回答随机问题 方法三:回答指定问题法 reg.asp文件 找到235行-246行的内容 在其下面插入 2、114行处找到 在其下面添加一行 然后再看风格处的修改,后台界面风格模板总管理page_login template.html(13)中找到 document.write ('<INPUT type=password maxLength=16 size=30 name=pswc>'); 在其下面插入 document.write ('<TR>'); 方法四:彻底解决方案-授权注册码方案(较长) 1.后台->login->template.html(13) 红色部分为添加内容 <!--reg.asp##注册资料填写部分 ## Sp3 2005/1/26--> <script language="JavaScript" src="inc/Mymodify.js"></script> <FORM name=theForm action=reg.asp?action=save method=post> <table cellpadding=3 cellspacing=1 align=center class=tableborder1> <TR align=middle><Th colSpan=2 height=24>新用户注册</TH></TR> <TR> <TD width="40%" class=tablebody1> <B>用户名</B>:<BR>注册用户名长度限制为{$NameLimLength}-{$NameMaxLength}字节</TD> <TD width="60%" class=tablebody1><INPUT maxLength="{$NameMaxLength}" size=30 name=name value={$name}></TD> </TR> …… <TR> <TD class=tablebody1><B>Email地址</B>:<BR>请输入有效的邮件地址,这将使您能用到论坛中的所有功能</TD> <TD class=tablebody1> <INPUT maxLength=50 size=30 name=e_mail value={$e_mail}><input type=button value='检测帐号' name=Button onclick="gopreview()"></TD> </TR> <TR> <TD class=tablebody1><B>注册授权码</B>:<BR>请输入与邮件地址对应的授权码,如果未取得注册授权码,请点击“获取授权码”来取得注册授权码</font></TD> <TD class=tablebody1> <INPUT maxLength=50 size=30 name=e_id value={$e_id}><input type=button value='获取授权码' name=Button onclick="gochkid()"></TD> </TR>
</table> ……… <form name=preview action=reg.asp?t=1 method=post target=preview_page> <input type=hidden name=username value=><input type=hidden name=email value=> </form> <form name=chkid action=chkid.asp method=post target=preview_page> <input type=hidden name=username value=><input type=hidden name=email value=> </form> 2.后台->login->添加template.html(25),内容:
<p>
<table cellpadding=3 cellspacing=1 align=center class=tableborder1>
<TR align=middle> <Th height=24>授权注册码发送情况</Th></TR>
<TR> <Td class=tablebody1 height=24>{$Reportmsg}</TD></TR>
</TABLE> 3.后台->login->添加template.html(26),内容:
<!--reg.asp##授权码发送邮件-->
<html>
<title>授权注册码信息</title>
<body>
<TABLE border=0 width='95%' align=center><TBODY><TR>
<TD valign=middle align=top>
{$username},您好:<br><br>
欢迎您注册本论坛,我们将提供给您最好的论坛服务!<br>
下面是您的注册授权信息:<br>
注 册 名:{$username}<br>
注 册 邮 箱:{$e_mail}<br>
注册授权码:{$e_id}<br>
<br><br>
请点击<a href=http://www.mjtd.com/bbs/reg.asp?action=apply&name={$username}&e_mail={$e_mail}&e_id={$e_id}><font color=red><b>继续注册</b></font></a>并填写其它相关内容以成为正式会员:<br>
<br><br>
<center><font color=red>再次感谢您注册本系统,让我们一起来建设这个网上家园!</font>
</TD></TR></TBODY></TABLE><br><hr width=95% size=1>
<p align=center>{$copyright} {$version}</p>
</body>
</html> 4.reg.asp的Sub reg_2()中 Sub reg_2() Dim grouploopinfo,TempLateStr,Rs Dim uname,uemail,ueid
uname=request("name")
uemail=request("e_mail")
ueid=request("e_id")
TempLateStr=template.html(13) …… TempLateStr=Replace(TempLateStr,"{$user_education}",Selectinfo(3)) TempLateStr=Replace(TempLateStr,"{$user_character}",Selectinfo(4)) TempLateStr=Replace(TempLateStr,"{$user_belief}",Selectinfo(5)) if uname<>"" then TempLateStr=Replace(TempLateStr,"{$name}",uname)
if uemail<>"" then TempLateStr=Replace(TempLateStr,"{$e_mail}",uemail)
if ueid<>"" then TempLateStr=Replace(TempLateStr,"{$e_id}",ueid)
TempLateStr=Replace(TempLateStr,"{$name}","")
TempLateStr=Replace(TempLateStr,"{$e_mail}","")
TempLateStr=Replace(TempLateStr,"{$e_id}","")
Response.Write TempLateStr End Sub 5.reg.asp的 Reg_3()中
… If IsValidEmail(Trim(Request.form("e_mail")))=false Then ErrCodes=ErrCodes+"<li>"+template.Strings(30) Else If not Isnull(Dvbbs.Forum_Setting(52)) and Dvbbs.Forum_Setting(52)<>"" and Dvbbs.Forum_Setting(52)<>"0" Then Dim SplitUserEmail SplitUserEmail=Split(Dvbbs.Forum_Setting(52),"|") For i=0 to Ubound(SplitUserEmail) If Instr(Request.form("e_mail"),SplitUserEmail(i))>0 Then ErrCodes=ErrCodes+"<li>"+template.Strings(31) Exit Sub End If Next End If useremail=Dvbbs.CheckStr(Trim(Request.form("e_mail"))) End If 后加上: 'mjtd.com add begin
If Request.form("e_id")="" Then
ErrCodes=ErrCodes+"<li>"+template.Strings(50)
Else
If trim(Request.form("e_id"))<>md5(useremail & username & IdPlus,16) Then
ErrCodes=ErrCodes+"<li>"+template.Strings(51)
end if
End If
'mjtd.com add end
6.inc/mymodify.js的最后加上: function gochkid()
{
document.chkid.username.value=document.theForm.name.value;
document.chkid.email.value=document.theForm.e_mail.value;
var popupWin = window.open('', 'preview_page', 'scrollbars=yes,width=500,height=300');
document.chkid.submit()
}
然后将reg.asp文件里的内容改成如下内容
<html>
<body>
<br><br>
<p align="center">要注册成为XXXXXXXXXX论坛的用户,请点击“<a href="reg_new.asp">下一步</a>”<br><br><br><br><br><br>
这是做是为了防止某些网络营销软件自动注册而影响到论坛的正常运行!
</body>
</html>
这样的话,当用户点击reg.asp的时候,必需要点"下一步"才能注册,而网络营销软件不会探测到reg_new.asp的,因为后台模板的代码里根本没有提到reg_new.asp这个真正的注册用户文件!
显然,这是上个思路的一点改进。至于在效果上是否有区别,还未实践证明。
这里我给出了修改方法。蓝色代码为已存在代码,红色代码是新增加代码。
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)="武则天"
%>
ErrCodes=ErrCodes+"<li>"+template.Strings(11)
Else
quesion=Request.form("quesion")
End If
If Request.form("answer")="" Then
ErrCodes=ErrCodes+"<li>"+template.Strings(11)
ElseIf Request.form("answer")=Request.form("oldanswer") Then
answer=Request.form("answer")
Else
answer=md5(Request.form("answer"),16)
End If
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
document.write ('<TD class=tablebody1><B>本论坛的中文名称是什么?</B><BR><font color=red>此条为防止恶意注册必填项!答案:</font><font color=blue>{$Forumname}</font></TD>');
document.write ('<TD class=tablebody1>');
document.write ('<INPUT maxLength=50 size=30 name=Forumname></TD>');
document.write ('</TR>');
偶也是动网论坛爱好者的坚定支持者,以前也试过很多防止恶意注册的方法均不凑效.昨天晚上才把论坛挂上去,今天早上就出线了10多篇垃圾贴,恶意注册的。
如果用邮箱验证,发贴审核等虽然可以对付注册机软件,但是这样子会给用户带来不必要的麻烦,只会让论坛失去人气.下面就推荐给大家一种有效的方法,在使用之前可以先看一下
演示 http://www.wangyeba.com/bbs/reg.asp
http://bbs.xx521.com/register.php (同理对dz的论坛进行修改,点击以后注意后缀的改变成reg.php)
修改只需三步:
第一步:把原reg.asp更名为register.asp (也可以更名为其它任意值,但不要与现有的文件重复)
第二步:在论坛根目录下添加一个新的reg.asp文件,代码如下
<!--#include file="conn.asp"-->第三步:登陆管理后台-风格界面模板总管理-编辑分页面模板(page_login) -界面风格-template.html(12)-找到
<table cellpadding=3 cellspacing=1 align=center class=tableborder1><form action="reg.asp?action=apply" method="post">把以上代码修改为
<table cellpadding=3 cellspacing=1 align=center class=tableborder1><form action="register.asp?action=apply" method="post">
到这里你已经大功告成,远离恶意注册了.
注意:红色的regster.asp可以是任意以.asp结尾的文件名,但是不能和已经存在的文件名相同,而且一定要前后一致,否则论坛将不能正常注册
<script></script>