风讯官方论坛FoosunCMS交流区插件讨论[分享]对付群发软件注册的新思路及实现(目前来讲是相当有效的)

1  /  1  页   1 跳转 查看:989

标题: [分享]对付群发软件注册的新思路及实现(目前来讲是相当有效的)

[分享]对付群发软件注册的新思路及实现(目前来讲是相当有效的)



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

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

一、使用增强的验证码

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

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

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


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

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

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

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)="武则天"




%>









演示地址如下,大家可以看看我在注册界面修改后的结果,


对本网站没兴趣的,不要注册啊,


演示地址  http://www.cnad100.com/bbs/

引用
 

认同楼上的!
作为产品最好能让Quesion和Answer在后台由用户自定义,避免规律性防止被程序利用。
比如:Quesion:我们网站的网址是多少?


Answer:www.foosun.net

引用
 

不错,顶!
引用
 

很好.
引用
 

顶啊.不错啊.
引用
 

不错,思路蛮好的。

福建宁化第二中学网站(调试中):
http://www.nhez.cn  (风讯核心,调试中)
QQ:280601330
¥已转到免费1G空间,欢迎光临。¥
免费1G空间注册地址:
http://www.mianfei.la/index.php?id=13403
引用
 

恶意注册其实没有发贴这关重要.


把上面的思路运用到发贴部分无疑是个更好的方法.


暴力倾销,无非也是在论坛发表文章,如果在文章处这么处理,我想效果更好.


不好的地方就是:用户每次回帖都要去回答问题,有点不方便.

引用
 

验证码算法复杂度强了,暴力营销就很难攻入哦。。
引用
 
1  /  1  页   1 跳转

版权所有 Foosun.NET  NewsCMS.com  NewsIDC.COM  Sitemap

Powered by Discuz!NT 2.0.1115    Copyright © 2001-2009 Comsenz Inc.
Processed in 0 second(s) (Cached).
返顶部