首页  ·  知识 ·  编程语言
动网论坛防垃圾注册一法
80  http://www.waasai.com/blog/f/80/  ASP  编辑:dezai  图片来源:网络
oblog_text> 升级到dvbbs7.1sp1以后,据反应,还有很多论坛遭到诸如暴力营销软件的骚扰。目前论坛是采用增强验证码和审核机制来限制群
 

升级到dvbbs7.1sp1以后,据反应,还有很多论坛遭到诸如暴力营销软件的骚扰。目前论坛是采用增强验证码和审核机制来限制群发。无疑,审核是针对已注册帐号的群发。既要让正常用户发帖,要要阻止软件利用已存在帐号群发,绝对是个难题。这里我只讨论如何有效阻止群发软件的注册。


预计使用此法后,不会再有“自动注册机”得逞。群发软件作者将会把重心转移到利用已存在的帐号上。

一、使用增强的验证码

这是一个比较正式使用比较广泛的做法。将你联想到手机强大的手写识别功能后,你就会对这种方法的可靠性提出怀疑。但是如何更好地增大软件的识别难度,仍是大家努力的方向。

二、让注册者回答固定问题

软件能识别验证码,但是绝对不会识别诸如以下文字:“请回答三加二等于几,用英文表示”。人工智能还达不到这种水平。基于这种思路,我们就可以让注册者回答问题。但这个问题绝对不要写成:“请回答本论坛的名字”,“今天是星期几”,“请复制以下文字”之类的易破解问题。你可以考虑让用户回答与论坛有关的话题。假设你的论坛是讨论金庸的。你可以这样说:“为证明你是一个金庸迷,请回答以下问题:《射雕英雄传》的东邪西毒南帝北丐中,西毒是谁”。

我这里只给出了思路,由于时间关系,还没有写相应的实现代码。如果大家支持本帖,我会在下次补上。当然也希望热心人把修改方法提供给大家。

三、让注册者回答随机问题

显然,这是上个思路的一点改进。至于在效果上是否有区别,还未实践证明。

这里给出不一修改方法。蓝色代码为已存在代码,红色代码是新增加代码。

1. 进入后台,风格界面模板总管理,page_login,template.html(13)


密码问题
忘记密码的提示问题

在此两句上面添加如下代码

 
   

反论坛群发必填项:

为了防止群发软件的恶意注册,

请回答以下问题

{$EvilQuesion}

   
   
 

2. 打开reg.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+"

  • "+"请填写防恶意注册问题!"
    End If

    If Not CheckEvil(Request.Form("EvilAnswer")) Then
      ErrCodes=ErrCodes+"

  • "+ "防恶意注册问题回答错误,请返回重试。"
    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)="武则天"

    %>

    本文作者:80 来源:http://www.waasai.com/blog/f/80/
    CIO之家 www.ciozj.com 微信公众号:imciow
        >>频道首页  >>网站首页   纠错  >>投诉
    版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
    延伸阅读