您尚未登录。

楼主 #1 2017-09-14 16:00:09

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,348
积分: 9202

fluxbb论坛防垃圾注册设置

http://www.52souji.net/set-the-anti-spam-of-fluxbb-forum.html

fluxbb论坛防垃圾注册设置

最近用fluxbb开了一个论坛,域名是http://cms.52souji.net/。

之所以选择fluxbb,主要是考虑到它比较简洁。但很快就被垃圾机器人给盯上了。五一小长假回来,发现竟然注册了上百个垃圾账号,还发了不少垃圾帖子。

先通过用户搜索功能,把五一期间注册的账号及相关帖子全部删除。但这毕竟不是终极解决方案,因为机器人很快就会重新注册。事实上,在我开始寻找解决方案的时候,已经被注册了好几个垃圾账号。

通过谷歌也可以搜索到一些解决方案,具体能不能用倒不一定,但我觉得都比较麻烦,于是决定自己通过修改代码来解决这个问题。

思路:在用户注册时,要求输入论坛的域名(或其他任何指定信息)。在用户提交注册信息时,首先检测用户是否输入了正确的信息,如果正确,就通过注册;如果不正确,就输出错误信息。

与注册相关的文件只有register.php,所以只需要对register.php进行适当修改就可以了。修改应该包括两个方面:

1. 增加验证码输入框

在“注册”按钮上面添加验证码输入框,具体到register.php文件,查找代码

<p class="buttons">

在其前面添加下面的代码:

<div class="inform">
<fieldset>
<legend><?php echo $lang_register['Code validation'] ?></legend>
<div class="infldset">
<p><?php echo $lang_register['Code validation info'] ?></p>
<label class="required">
<input type="text" name="code_validation" value="" size="40" maxlength="80"></label>
</div>
</fieldset>
</div>

2. 对用户输入的验证码信息进行检测

在register.php文件中查找代码

// Check that someone from this IP

在其前面添加下面的代码:

// Check if the validation code is correct.
if (trim($_POST['code_validation']) != "cms.52souji.net")
message($lang_register['Wrong validation code']);

3. 为相关信息添加语言翻译

在lang\English目录下找到register.php文件,并在适当位置添加如下信息:

'Code validation'	=>	'Code validation',
'Code validation info'	=> 'Please input the domain [cms.52souji.net] of this forum to confirm that you are not a robot.',
'Wrong validation code'	=> 'Wrong validation code! Please check and re-register.',

在lang\Simplified_Chinese目录下找到register.php文件,并在适当位置添加如下信息:

'Code validation'    =>    '输入验证码',
'Code validation info'    => '请输入本论坛域名 cms.52souji.net ,证明你不是机器人。',
'Wrong validation code'    => '验证码输入错误,请检查后重新注册。',

这样,在刷新注册页面后,就会看到下面的验证码界面:

Code validation

如果用户在注册时,没有输入正确的验证码,就会提示下面的信息:

Code validation

虽然具体使用效果如何,还有待验证,但从理论上说,机器人是很难突破的。





离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn