疾控家园's Archiver

洋子 发表于 2005-11-12 20:20

[转帖]对付群发软件注册的新思路及实现

<P>升级到dvbbs7.1sp1以后,据反应,还有很多论坛遭到诸如暴力营销软件的骚扰。目前论坛是采用增强验证码和审核机制来限制群发。无疑,审核是针对已注册帐号的群发。既要让正常用户发帖,要要阻止软件利用已存在帐号群发,绝对是个难题。这里我只讨论如何有效阻止群发软件的注册。</P>
<P>预计使用此法后,不会再有“自动注册机”得逞。群发软件作者将会把重心转移到利用已存在的帐号上。</P>
<P><b>一、使用增强的验证码</b></P>
<P>这是一个比较正式使用比较广泛的做法。将你联想到手机强大的手写识别功能后,你就会对这种方法的可靠性提出怀疑。但是如何更好地增大软件的识别难度,仍是大家努力的方向。</P>
<P><b>二、让注册者回答固定问题</b></P>
<P>软件能识别验证码,但是绝对不会识别诸如以下文字:“请回答三加二等于几,用英文表示”。人工智能还达不到这种水平。基于这种思路,我们就可以让注册者回答问题。但这个问题绝对不要写成:“请回答本论坛的名字”,“今天是星期几”,“请复制以下文字”之类的易破解问题。你可以考虑让用户回答与论坛有关的话题。假设你的论坛是讨论金庸的。你可以这样说:“为证明你是一个金庸迷,请回答以下问题:《射雕英雄传》的东邪西毒南帝北丐中,西毒是谁”。</P>
<P>我这里只给出了思路,由于时间关系,还没有写相应的实现代码。如果大家支持本帖,我会在下次补上。当然也希望热心人把修改方法提供给大家。</P>
<P><b>三、让注册者回答随机问题</b></P>
<P>显然,这是上个思路的一点改进。至于在效果上是否有区别,还未实践证明。</P>
<P>这里我给出了修改方法。蓝色代码为已存在代码,红色代码是新增加代码。</P>
<P><b><FONT color=#ff00ff>1.</FONT> </b>进入后台,风格界面模板总管理,page_login,template.html(13)</P>
<P><FONT color=#0000ff>&lt;TR&gt;
&lt;TD class=tablebody1&gt;&lt;B&gt;密码问题&lt;/B&gt;:&lt;BR&gt;忘记密码的提示问题&lt;/TD&gt;</FONT></P>
<P>在此两句<b><FONT color=#2b6fd5>上面</FONT></b>添加如下代码</P>
<P><FONT color=#ff0000>  &lt;TR&gt;
    &lt;TD class=tablebody1&gt;
&lt;div style="color:red"&gt;&lt;b&gt;反论坛群发必填项:&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;为了防止群发软件的恶意注册,&lt;/div&gt;
&lt;div&gt;请回答以下问题&lt;/div&gt;
&lt;div  style="color:blue;font-size=18px"&gt;&lt;b&gt;{$EvilQuesion}&lt;b&gt;&lt;/div&gt;</FONT></P>
<P><FONT color=#ff0000>    &lt;/TD&gt;
    &lt;TD class=tablebody1&gt;&lt;INPUT size=30 name=evilanswer&gt; &lt;/TD&gt;
  &lt;/TR&gt;</FONT></P>
<P><b><FONT color=#ff00ff>2.</FONT></b> 打开reg.asp,找到
<FONT color=#0000ff>&lt;!--#include file="inc/md5.asp"--&gt;</FONT>
在其下添加
<FONT color=#ff0000>&lt;!--#include file="inc/CheckEvil.asp"--&gt;
</FONT>找到
<FONT color=#0000ff>TempLateStr=Replace(TempLateStr,"{$user_belief}",Selectinfo(5))</FONT>
在其下添加
<FONT color=#ff0000>Randomize
Session("EvilID")=int(Rnd*QuesionNum)
TempLateStr=Replace(TempLateStr,"{$EvilQuesion}", QuesionArray(Session("EvilID")))</FONT>
找到
<FONT color=#0000ff>Else
  quesion=Request.form("quesion")
End If
</FONT>在其下添加
<FONT color=#ff0000>If Request.Form("EvilAnswer")="" Then
  ErrCodes=ErrCodes+"&lt;li&gt;"+"请填写防恶意注册问题!"
End If

If Not CheckEvil(Request.Form("EvilAnswer")) Then
  ErrCodes=ErrCodes+"&lt;li&gt;"+ "防恶意注册问题回答错误,请返回重试。"
End If</FONT></P>

<P><b><FONT color=#ff00ff>3.</FONT></b> 增加一个新文件CheckEvil.asp,填写如下代码,并上传到论坛inc目录下,即 /inc/CheckEvil.asp。
<FONT color=#ff0000>&lt;%
Dim QuesionArray(100)
Dim AnswerArray(100)
Dim QuesionNum
QuesionNum=5  '请在这里正确设置问题的总数</FONT></P>
<P>
<FONT color=#ff0000>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</FONT></P>
<P><FONT color=#ff0000>End Function</FONT></P>
<P><FONT color=#ff0000></FONT></P>
<P><FONT color=#ff0000>QuesionArray(0)="12的平方是多少?(数字)"
AnswerArray(0)="144"
QuesionArray(1)="中国最长的河流叫什么名字?"
AnswerArray(1)="长江"
QuesionArray(2)="“举头望明月”的下句是什么?(提示:低头??乡)"
AnswerArray(2)="低头思故乡"
QuesionArray(3)="“举头望明月”的下句是什么?(提示:低头??乡)"
AnswerArray(3)="低头思故乡"
QuesionArray(4)="中国史上唯一的女皇是谁?(提示:武?天)"
AnswerArray(4)="武则天"</FONT></P>
<P><FONT color=#ff0000></FONT></P>
<P><FONT color=#ff0000>%&gt;</FONT></P>
<P><FONT color=#ff0000></FONT> </P>
<P><FONT color=#ff0000><FONT color=#000000>文章出处:</FONT><a href="http://bbs.dvbbs.net/dispbbs.asp?boardID=8&amp;ID=1071122&amp;page=1" target="_blank" >http://bbs.dvbbs.net/dispbbs.asp?boardID=8&amp;ID=1071122&amp;page=1</A></FONT></P>

洋子 发表于 2005-11-12 20:23

这两天有群发软件注册在骚扰论坛,我晚上按上述做法对网站后台进行了相应的修改,但愿今后能少发生这样情况。

红缨枪 发表于 2005-11-12 20:42

我觉得加验证码是一个不错的办法

admin 发表于 2005-11-12 21:47

<P>加验证码固然好,但也能被破解,而且论坛里的文章不易被搜索引擎抓获,这样会影响论坛的对外推广宣传,所以没有考虑采用。</P>
<P>这个方法刚刚试过还行,现在可以重新注册了。另外,这几天的近50个垃圾帐号已被清除。</P>

红缨枪 发表于 2005-11-12 22:15

呵呵,辛苦辛苦啦

axiang 发表于 2005-11-14 16:25

<P>     知道中国男足为什会失败吗?都应你的<a href="http://zwzw.icpcn.com/" target="_blank" ><b><FONT size=2>清新壁纸家园</FONT></b></A>办的太精彩。</P><P><b><FONT size=2></FONT></b> </P>

红缨枪 发表于 2005-11-14 16:53

<DIV class=quote><B>以下是引用<I>axiang</I>在2005-11-14 16:25:51的发言:</B>

<P>     知道中国男足为什会失败吗?都应你的<a href="http://zwzw.icpcn.com/" target="_blank" ><B><FONT size=2>清新壁纸家园</FONT></B></A>办的太精彩。</P>
<P><B><FONT size=2></FONT></B></P></DIV>
<P>不是吧,嘿嘿,谢谢你的夸奖.</P>

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.