阻止phpBB被恶意注册

我的phpBB论坛每天都收到来自不同IP的恶意注册,并发一些垃圾贴子。感觉是注册机所为。
为此在注册页面增加了一个一道数学题字段:)

[size=medium][color=darkred][b]1. 修改ucp_register.html[/b][/color][/size]
[img]http://dl.iteye.com/upload/attachment/157545/f01d478c-6de9-3171-91e0-46cefeb0fd48.gif[/img]

相应的源代码如下,需将其添加到ucp_register.html的confirm_code字段的下方:

<dl>
<dt><label for="formula">标识数字:</label><br/>请在文本框中输入框右边算式的结果</dt>
<dd><input type="text" name="random_num" id="random_num" size="8" maxlength="8" class="inputbox narrow"/>
<span style="font-size:12pt;color:red">{RANDOM_FORMULA}</span>
</dd>
</dl>

[size=medium][color=darkred][b]2.修改includes\ucp\ucp_register.php[/b][/color][/size]
[b]2.1 在main方法最前面开启session[/b]
session_start();

[b]2.2 校验运算公式[/b]
在confirm_code校验下方(大约在259行),添加如下代码

//ADDED BY ALLEN
$random_num = $_SESSION['random_num'];
if ($random_num <> request_var('random_num', '')) {
$error[] = '您输入的运算结果不正确';
}


[b]2.3 输出运算公式到注册页[/b]
在$template->assign_vars上方增加代码

$a = rand(1,100);
$b = rand(1,100);
$_SESSION['random_num'] = $a+$b;

然后为$template->assign_vars()增加一个条目RANDOM_FORMULA

$template->assign_vars(array(
'RANDOM_FORMULA' => $a . ' + ' . $b, //新增的条目
'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '',
'USERNAME' => $data['username'],
......
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值