防止机器注册


方法一:


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>:
忘记密码的提示问题答案,用于取回论坛密码</td>
<td class="tablebody1">
<input type="text" size="30" name="answer"/>
</td></tr>
后面添加: 
<tr>
<td class="tablebody1"><b>本论坛的中文名字是什么?</b>
<font color="red">此条为防止恶意注册必填项!

答案:</font><input type="text" value="{$Forumname}" onclick="oCopy(this)" readonly="readonly"  style="border-left:none; border-right:none; border-top:none; border-bottom: 1="1"  solid="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>:
强烈推荐填写,方便在论坛上互动联系<font color="red">(4--13位)
<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>:
忘记密码的提示问题</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行的内容
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>
此为防止恶意注册必填项!请直接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>');




<%
'-------针对信息产业局服务器一流信息监控的动网防广告代码
'说明:防注册机核心检测代码
'--检测当前是否访问reg.asp 即进行注册的相关操作
If server.mappath(Request.ServerVariables("SCRIPT_NAME")) = Server.MapPath("reg.asp") Then
'判断Session对象是否被赋值
If Session("AllowReg") <> 1 Then
Response.Write("" & VbCrLf)
Response.End
End if
End if


'检测是否在查看公告页面
If server.mappath(Request.ServerVariables("SCRIPT_NAME")) = Server.MapPath("dispbbs.asp") Then
If Session("AllowReg") <> 1 Then
Session("AllowReg") = 1
End if
End if


%>

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值