通信界 | 通信圈 | 通信家 | 下载吧 | 说吧 | 国际 | 国内 | 运营 | 市场 | 财经 | 物联网 | 无现金 | | 专网 | 信息安全 | 5G | BigDate
 电源 | 专网 | 光通信 | 交换 | 视频 | 接入 | 无线 | 线缆 | 测试 | IT | 自动化 | 互联网 | 数据 | 政策 | 终端 | NGN | 视界 | 前瞻 | 知本院

通信圈〖休闲 · 娱乐〗数据编程 · 大数据建设 → 动网论坛防治恶意注册垃圾帖的代码

欢迎您提出建议和意见!管理员QQ:181502650 通信界QQ群:群①:31498574;群②:89286709 下载吧-通信书籍、通信论文、通信报告集聚地! 通信界QQ群:群③:5834261;群④:8044407

  共有7069人关注过本帖树形打印复制链接

主题:动网论坛防治恶意注册垃圾帖的代码

帅哥哟,离线,有人找我吗?
铁通专网
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:班组临时工 帖子:1 积分:63 威望:0 精华:0 注册:2010/1/14 15:09:37
动网论坛防治恶意注册垃圾帖的代码  发帖心情 Post By:2010/1/14 15:11:13 [只看该作者]

近数月来我管理的佛教论坛经常被一些人用论坛小助手等软件恶意注册发垃圾帖子,管理员防不胜防。今晚我特为论坛增加了注册问题验证,凡不能回答相关问题者即不能注册,也即不能发帖子。所设问题是随机出现(所设问题及答案随各人所好)。

办法如下:

1.
最高管理员进入后台,点击风格界面模板总管理,page_login,template.html(13) 找到

<tr>
<td class="tablebody1"><b>密码问题</b>:<br />忘记密码的提示问题</td>
<td class="tablebody1">
<input name="quesion" type="text" size="30" />
</td></tr>

在上面此段代码前面添加如下代码

<TR>
<TD class=tablebody1>
<div class="tablebody1"><b>防恶意注册问题回答:</b></div>
<div style="color:red";font-size=18px">{$EvilQuesion}</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"-->
找到163行
TempLateStr=Replace(TempLateStr,"{$user_belief}",Selectinfo(5))
在其下添加
Randomize
Session("EvilID")=int(Rnd*QuesionNum)
TempLateStr=Replace(TempLateStr,"{$EvilQuesion}", QuesionArray(Session("EvilID")))
找到第351行
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)="佛教三宝是?(提示:佛法僧)"
AnswerArray(0)="佛法僧"
QuesionArray(1)="四大名山中观音菩萨的道场是?(提示:普陀山)"
AnswerArray(1)="普陀山"
QuesionArray(2)="西方极乐世界教主是?(提示:阿弥陀佛)"
AnswerArray(2)="阿弥陀佛"
QuesionArray(3)="禅宗六祖法号是?(提示:惠能)"
AnswerArray(3)="惠能"
QuesionArray(4)="四大名山中文殊菩萨的道场是?(提示:五台山)"
AnswerArray(4)="五台山"
%>


通信界QQ群:群③:5834261;群④:8044407  回到顶部
帅哥哟,离线,有人找我吗?
新月弯刀
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 新月派弯刀
等级:通信圈管理员 帖子:2213 积分:26874 威望:10 精华:34 注册:2004/9/1 1:25:35
  发帖心情 Post By:2010/1/14 15:56:46 [只看该作者]

呵呵,不错。

1、先的reg.asp改名为xxreg.asp,
然后另写三张reg.asp,reg1.asp.reg2.asp,作三次转向,最后转向到xxreg.asp,
2、在后台要开启审核,审核以下关键字:
****|****|****|****|****|****|
对付论坛群发软件的方法(050614最后更新)!!

现在已有不少动网用户受到了一种称为“暴力****”(168BBS)软件的骚扰。

该软件可以自动注册一个随机的新用户,并且发广告帖。根据作者声称:该软件可以在一小时内在2——5万个论坛群发广告。

官方似乎暂时还没有公布解决方案,于是我总结了几条解决的方法,供大家参考。

希望大家把自己改后的效果反馈一下,以便更好地对付群发。同时也希望大家把自己比较好的方法和大家分享。
不是每条都要挨着执行,也不是每条都一定有效,你可选用其中的几种方法。

根据大家的反馈,发现第二和第五两种方法最有效果,推荐使用。尤其是二!

一、更正验证码的易破解性

之前不论在7.0和7.1中,验证码都存在着缺陷,可以通过程序自动识别出验证码上的数字,于是没有真正起到验证码的作用。我们可以在注册时设置使用验证码,再按照以下方法修改。

验证码文件是Dv_GetCode.asp(7.1中)

找到这段代码:

If Rnd * 99 + 1 < cOdds Then \' 随机生成杂点
Response.BinaryWrite vColorData(0)
Else

将其改为

If Rnd * 99 + 1 < cOdds Then \' 随机生成杂点
If Mid(vNumberData(vCode(ii)), i * 10 + iii, 1) Then
Response.BinaryWrite vColorData(0)
Else
Response.BinaryWrite vColorData(1)
End If
Else

另外,找到以下代码

Const cOdds = 2 \' 杂点出现的机率

把2设置的稍大一些,建议设置为5~10。

以上部分的修改已经被很多实践证明效果很不明显。假如你有耐心,可以再试用手工修改验证码图片的方法(因麻烦故不推荐),这个一定有效果!如下:

这里我给出了一个自己做验证码的方法,里面有说明。
点击浏览该文件

这个是另一个朋友提供的验证码工具:http://bbs.dvbbs.net/dispbbs.asp?boardID=8&ID=958224&page=1

使用7.0的用户可以用7.1的这个文件覆盖原来的。如果你修改了验证码的图片,可以不再考虑杂点的问题。

二、更改提交表单的元素属性

此方法为“研究动网”朋友提出来的。它可以在不用验证码系统的条件下对付群发软件。

在论坛注册页面,用户名,密码文本框的 name属性分别默认为name和psw。我们可以修改其属性达到限制软件注册的效果。

具体方法如下,7.0和7.1均适用:

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

找到 <INPUT maxLength="{$NameMaxLength}" size=30 name=name>

将粉色的name改为其他值,比如改成 “name1”

然后打开reg.asp,以关键词Request.form("name")进行搜索

将其全部替换为Request.form("name1")

当然那个name1就是刚才你在风格模板里改的值


三、设置注册延时

设置新注册用户不能发帖,要一分钟或更多的时间后才能发帖。这样可以在一定程度上抵制非注册软件的攻击。但是对注册了的软件没有作用。

四、设置至少要有一个中文字符注册

这个方法并不太好,因为很多人实际上都比较喜欢用纯英文名。但是有不少朋友提出这个想法,这里还是列出在7.0和7.1里面的修改方法吧:

reg.asp文件,在蓝色代码

If Instr(username,"=")>0 or Instr(username,"%")>0 or Instr(username,chr(32))>0 or Instr(username,"?")>0 or Instr(username,"&")>0 or Instr(username,";")>0 or Instr(username,",")>0 or Instr(username,"\'")>0 or Instr(username,",")>0 or Instr(username,chr(34))>0 or Instr(username,chr(9))>0 or Instr(username,"")>0 or Instr(username,"$")>0 or Instr(username,"|")>0 Then
Dvbbs.AddErrCode(19)
Exit sub
End If

下添加以下红色代码Dim IsCHName
IsCHName = False
For i = 1 To Len(UserName)
If Asc(Mid(UserName, i, 1)) < 0 Then
IsCHName = True
Exit For
End If
Next
If Not IsCHName Then
Response.redirect "showerr.asp?ErrCodes=<li>请至少输入一个中文字符。&action=OtherErr"

End If

五、修改注册页面的地址

首先将论坛根目录下的reg.asp改名,比如改成reg1.asp,然后进入后台 / 风格界面模板总管理 

在main_Style,Page_Login的“界面风格”中搜索“reg.asp”(注意7.0中不要把chkreg.asp替换了),全部替换成比如“reg1.asp”



由于家园论坛数据量过于庞大,无法进行帖子逐个修改,故给所有用户每人增加5000元电通币用于下载用,若电通币用完了,可以向管理员申请,版主会及时给您增加金钱,也希望大家理解,多多发贴跟帖,共同营造良好的沟通氛围。
通信界QQ群:群③:5834261;群④:8044407  回到顶部
帅哥哟,离线,有人找我吗?
新月弯刀
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 新月派弯刀
等级:通信圈管理员 帖子:2213 积分:26874 威望:10 精华:34 注册:2004/9/1 1:25:35
  发帖心情 Post By:2010/1/14 15:58:13 [只看该作者]

用js加密的办法是很好的,破解不了

一,模板部分

1,分页模板(page_login) (12) 里面 找到:

<input type="hidden" name="{$hidden}" value="{$hidden}">

紧接着增加:

<input type="hidden" name="取你的自定义名字" value="{$GlobalTm_1}">

2,分页模板(page_login) (13) 里面 找到:

<form....>后面加上

<script>

<!-- 禁止暴力营销注册-增加代码-Start -->

var Str = "{$GlobalTm_2}";

var prand = "";

for(var i = 0; i < Str.length; i++) {

prand += Str.charCodeAt(i).toString();

}

var a=((12^123)>>2)-10;

var b=Math.floor(Math.sin(1.11) * 10);

document.write ('<input type="hidden" name="取你的自定义名字" value=' + prand.substr(a,b) +' />')

<!-- 禁止暴力营销注册-增加代码-End -->

</script>

好了,模板修改完成后记得更新下缓存;

二,REG.ASP部分

1,找到:

TempLateStr=Replace(TempLateStr,"{$Forum_Name}",Dvbbs.Forum_Info(0))

TempLateStr=Replace(TempLateStr,"{$hidden}",GetFormID())

下面接着增加:注意,后面的20数字为获取页面来源从左边数的字符长度,根据自己的域名长度来看。

'禁止暴力营销注册-增加代码-Start (1)

TempLateStr=Replace(TempLateStr,"{$GlobalTm_1}",Left(UCase(Request.ServerVariables("HTTP_REFERER")),20))

'禁止暴力营销注册-增加代码-End (1)

2,找到:

TempLateStr=Replace(TempLateStr,"{$hidden}",FormID)

下面接着增加:

'禁止暴力营销注册-增加代码-Start (2)

TempLateStr=Replace(TempLateStr,"{$GlobalTm_2}",Request.Form("取你的自定义名字"))

'禁止暴力营销注册-增加代码-End (2)

3,找到:

If ErrCodes<>"" Then Exit Sub

If Dvbbs.ErrCodes<>"" Then Exit Sub

在这2行上面增加:

'禁止暴力营销注册-增加代码-Start (3)

'Response.Write Request.Form("取你的自定义名字") '远程调试时请先取消这2行注释输出查看您的ID,

'Response.End '并且输入下面的<>"根据您的域名来源计算的ID"中

If Request.Form("取你的自定义名字") <> "根据您的域名来源计算的ID" Then

Dim NoadSql,l_r_content

l_r_content = "暴力营销注册名:"&username&" 密码:"&pass2&" 邮件:"&useremail

NoadSql = "insert into Dv_Log (l_touser,l_username,l_content,l_addtime,l_ip,l_type) values ('Reg.Asp','"&username&"','"&l_r_content&"',"&SqlNowString&",'"&Dvbbs.UserTrueIP&"',6)"

Dvbbs.Execute(NoadSql)

Response.redirect "showerr.asp?ErrCodes=<li>系统检测您可能正在使用注册机软件非法注册,请正常注册使用。&action=OtherErr"

End If

'禁止暴力营销注册-增加代码-End (3)

OK,全部更新上,注意要先输出下您的ID,以便填入判断;这个是根据JS算法到服务端判断的过程,而JS算法的起源字符又需要来自REG.ASP的点击来源页面,所以调试中,WWW.cndw.COM/REG.ASP 和 cndw.COM/REG.ASP 算法ID并不一样;

如果需要2个或者更多域名正常注册,那则在判断处加上ADD 符号继续判断即可;

特别注意:在第一次安装中需要注意2个问题,1,是取自己域名长度的问题,上面例子是20

2,是第一次安装需要先打开

'Response.Write Request.Form("取你的自定义名字") '远程调试时请先取消这2行注释输出查看您的ID,

'Response.End

这2行,就是把前面的 ' 符号取消保存。自己注册一下,会输出正确ID,然后把ID填到 "根据您的域名来源计算的ID" 里面。再把那2行注释掉,就是前面 ' 符号加起来,或者删除这2行。



由于家园论坛数据量过于庞大,无法进行帖子逐个修改,故给所有用户每人增加5000元电通币用于下载用,若电通币用完了,可以向管理员申请,版主会及时给您增加金钱,也希望大家理解,多多发贴跟帖,共同营造良好的沟通氛围。
下载吧-通信书籍、通信论文、通信报告集聚地!  回到顶部
帅哥哟,离线,有人找我吗?
新月弯刀
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 新月派弯刀
等级:通信圈管理员 帖子:2213 积分:26874 威望:10 精华:34 注册:2004/9/1 1:25:35
  发帖心情 Post By:2010/1/14 15:58:57 [只看该作者]

动网论坛注册分3步:
1.reg.asp页面,即阅读同意页面,点击同意进入下一页
2.reg.asp?action=apply页面,填表单页面,不能直接打开
3.reg.asp?action=save页面,保存信息页面,不能外部提交
根据某些自动注册机直接读取验证码页面,并伪造来源直接提交到第3步,我们可以在第一步设置一个session值,在第2步和第3步来验证这个值
具体做法:
1.找到reg.asp页面,找到Sub reg_1()过程里面加上下面代码(表示在第一步的时候设置个验证session,里面保存他在打开第一个页面时候的当前系统时间):
session("myRegTime")=now()
2.找到Sub reg_2()过程里面加上下面的代码(表示第2步的时候验证一下,若没有这个session值就不让注册):
If session("myRegTime")="" Then
 Response.redirect "showerr.asp?ErrCodes=<li>目前系统维护中,请稍后访问.&action=OtherErr"
End If
3.第3步的时候我们也要验证session这个值,再加上另外3个判断:
1)发现有的注册机比较智能,可以模拟人的注册方式,所以上面单纯判断session为空就比较没有效果,因为注册机的注册过程比较快,所以判断一下它到第3步时候的系统时间减去第一步时候的时间如果小于20秒也是不正常的,拒绝它
2)发现最流行的论坛自动注册发贴机“营销利剑”它在自动注册的时候头像地址默认是“userface/image1.gif”,而这个地址实际上是不存在的,正确地址应该是“/Images/userface/image1.gif”,这应该是它的一个bug,正好判断一下限制它注册。
3)很多注册机在给别人使用的时候会加上自己的一些信息,一般在注册的时候加到签名里面,所以可以在签名里面判断这些关键字,发现了就不让注册

下面写具体代码,找到Sub reg_3()过程里面加上下面的代码:
If session("myRegTime")="" or DateDiff("s",session("myRegTime"),now())<20 Then
 Response.redirect "showerr.asp?ErrCodes=<li>目前系统维护中,请稍后访问.&action=OtherErr"
End If

If Request.Form("myface")="userface/image1.gif" Then
 Response.redirect "showerr.asp?ErrCodes=<li>目前系统维护中,请稍后访问.&action=OtherErr"
End If

Dim badPersonal,myCount
badPersonal="营销|vodcom.com|ite69.cn" '这边是要过虑的关键字数组,可以以后自己添加
badPersonal=split(badPersonal,"|")

For myCount = 0 to ubound(badPersonal)
 If Instr(Request.Form("personal"),badPersonal(myCount))>0 Then
  Response.redirect "showerr.asp?ErrCodes=<li>目前系统维护中,请稍后访问.&action=OtherErr"
  Response.End()
 End If
Next




由于家园论坛数据量过于庞大,无法进行帖子逐个修改,故给所有用户每人增加5000元电通币用于下载用,若电通币用完了,可以向管理员申请,版主会及时给您增加金钱,也希望大家理解,多多发贴跟帖,共同营造良好的沟通氛围。
欢迎您提出建议和意见!管理员QQ:181502650  回到顶部
帅哥哟,离线,有人找我吗?
维埃离开
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:班组临时工 帖子:2 积分:36 威望:0 精华:0 注册:2010/10/13 5:46:29
我给自己女儿什么,也给她买什么  发帖心情 Post By:2010/11/6 20:42:50 [只看该作者]

晚上,真味如烟跟两个同学一起吃饭。席间,男同学说电子烟了他最近的任仲传风痛康膜一件窝心事。   他曾经的一个朋友,十年前,健康电子烟因打架失手爱肺金雪茄伤人而劳改三年。左旋嚼嚼瘦出来后,原单位是一品如烟回不去了,找工作连连碰壁,做生意又缺少本钱,同学大方出手,借给他勃兰登清毒烟十万块钱,公爵替烟王他用这十万块钱买了第一台设备,两铂金骑士清毒烟年后又买了第二台,然后建厂房、扩大,滚成现在的资产千万。   没有我,哪朵朵神速大有他今天啊!同学说,但是,就在左旋嚼嚼瘦前天,我让他加工了点零件,朵朵神速大他的价格,却比给别人的还高,我痛心哪,这种人,怎么这么没良心,不知道感恩?!早知如此,当初我说什么也不帮他!同学越说越气愤,一口气喝爱肺金雪茄光了一大杯白酒,眼睛发红。   我听了,一品如烟也愤愤不平,说这种人,早晚会有报应。   看我们两个发怒,公爵替烟王那个女同学,却只顾喝她的勃兰登清毒烟茶。我责问道:“你为什茶具批发网么不生气?”   女同学说,你们的心情,我完全可以理解,要是换成以前的我,也会跟你们一样发怒,但是,后来有一件事改变了我,给我深深感悟的,是我十五岁的女儿。   我女岩棉儿从四岁开始学钢琴,九岁时,以优异的成绩被上海一家艺术学校录取,在她专业弹钢琴的班里,我女儿,是最优秀的一个,老师说,她,天生就是弹钢琴的料。玻璃棉她的同桌,也是一个女孩子,那女孩子,钢琴弹得也不错,保温材料仅次于我的女儿,再加上出身高干家庭,所以,非常非常骄傲,我女儿对她很好,外墙保温材料把最好的东西都拿给她分享,我每次去上海,带女儿旅游时,也带上她,可以说,我给自己女儿什么,也给她买什么。   有一次电视购物,去看仲景圣方膜女儿,见女仲景圣方膜儿正在给那仲景圣方膜女孩子辅导钢琴仲景圣方膜,女儿说,在一些细节上,她总是出错,她一定要帮她改过来。为了帮她,女儿牺牲了许多自己的练习时间。

通信界QQ群:群③:5834261;群④:8044407  回到顶部