PHPWIND论坛关于防发帖机的方法
1.启用验证码
在核心设置->认证码 下面开启“注册认证码功能”
2.邮件激活
在核心设置->注册控制 下面开启“新用户注册需通过email激活用户”
3.禁止同一IP在一定时间内不能注册
在核心设置->注册控制 下面设定“禁止同一IP在多少时间内不能重复注册”的时限
4.新用户注册需管理员在后台验证通过才能发帖
在核心设置->注册控制 下面开启“新用户注册是否需要管理员在后台验证通过才能发帖”
此功能可能会使用户的体验不好,慎重使用。
5.论坛防注册机控制
在核心设置->注册控制 下面设定一些参数,具体的设定方法在http://www.phpwind.net/read-htm-tid-350207.html做了详细的说明。
6. 设置新用户不能发布主题,只能先回复
至少回复多少贴才升一级进入可发主题贴的等级.自动发贴机目前是不会先回复后发主题贴。
7.妥善处理与会员关系,加强版主管理,建立奖惩制度等等。
8.安装防注册机注册插件
此帖子中最此插件做了详细的说明,并提供了下载
http://www.phpwind.net/read-htm-tid-414018-keyword-%D7%A2%B2%E1%BB%FA.html
动网论坛防止发帖机恶意发帖的办法
第一种方法:
将reg.asp文件改成其它文件名如reg_new.asp传到论坛目录下面!
然后将reg.asp文件里的内容改成如下内容
<html>
<body>
<br><br>
<p align="center">要注册成为XXXXXXXXXX论坛的用户,请点击“<a href="reg_new.asp">下一步</a>”<br><br><br><br><br><br>
这是做是为了防止某些网络营销软件自动注册而影响到论坛的正常运行!
</body>
</html>
这样的话,当用户点击reg.asp的时候,必需要点"下一步"才能注册,而网络营销软件不会探测到reg_new.asp的,因为后台模板的代码里根本没有提到reg_new.asp这个真正的注册用户文件!
第二种方法:
让注册者回答随机问题
显然,这是上个思路的一点改进。至于在效果上是否有区别,还未实践证明。
这里我给出了修改方法。蓝色代码为已存在代码,红色代码是新增加代码。
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)="武则天"
%>
DISCUZ论坛关于防发帖机的方法
1:问:如果有注册机器人在Discuz!论坛上批量注册用户怎么办?
答:以管理员身份登入Discuz!后台,依次 “Discuz! 选项 -->安全控制--> 启用验证码”。将“新用户注册”选项前打勾,可有效防止注册机批量注册。
另外还可以设置注册限制:“Discuz! 选项-->注册与访问控制-->IP 注册间隔限制(小时) ”在这里设置同一台电脑注册时间的间隔也可有效防止恶意注册。
2:问:论坛如何防止论坛恶意批量发帖?
答:以管理员身份登入Discuz!后台,在后台设置防止灌水时间:“Discuz! 选项-->安全控制-->发帖灌水预防”,在这里设置两个帖子发表的时间间隔。
3:问:如何禁止论坛发表带有敏感字符的帖子?
答:以管理员身份登入Discuz!后台设置方法:依次进入后台 - 帖子相关 - 词语过滤 在 不良词语 输入框中填写要过滤的字符。在 替换为输入框中填写改铭感字符过滤后的替换字符,如 需要过滤 “他妈的”为“TMD”则在 不良词语 输入框中填写 “他妈的”,在 替换为 输入框中填写“TMD”即可。有没有办法让含有某个字符的帖子无法发表呢?可以的。只要在上面选项中的替换为 输入框中填写 “{BANNED}”,则将该铭感字符设置为不可发表。
4:问:如果发广告者在论坛各处发帖,管理员想一次性删除可以吗?
答:当然可以。以管理员身份登Discuz!后台,选择“论坛维护-->批量删帖”,在“发帖用户名”一项中填写恶意发帖者ID,点击提交后出现该ID所发表的所有文章,全部打勾或有选择性的批量删除即可。