垃圾站博客仅在Discuz! X3.2中测试成功,其他版本请自行测试!
Discuz! X3.2默认在会员找回密码时不对邮件发送频率进行限制,这样可能会被恶意用户频繁发送邮件,导致发件账号被封禁。
下面对Discuz! X3.2源码进行修改,以杜绝这种情况:
垃圾站博客原创 www.lajiz.cn 转载请保留原文链接!
1、打开source/module/member/member_lostpassword.php,搜索:
$idstring = random(6);
2、在这段代码的上面加入如下代码,保存并覆盖源文件:
$memberauthstr = C::t('common_member_field_forum'.$table_ext)->fetch($member['uid']);
list($dateline, $operation, $idstring) = explode("\t", $memberauthstr['authstr']);
if($dateline && $operation == 1 && $dateline>TIMESTAMP-900){
showmessage('getpasswd_has_send');
}
以上代码中900代表900秒=15分钟,意思是限制间隔15分钟发送一次找回密码邮件。
3、打开source/language/lang_message.php,搜索
'getpasswd_send_succeed' => '取回密码的方法已通过 Email 发送到您的信箱中,
请在 3 天之内修改您的密码',
在上面加入
'getpasswd_has_send' => '取回密码的方法已通过 Email 发送到您的信箱中,如果您没有收到,请稍等15分钟后重试',
当然,这里的中文提示你可以自行修改(15分钟时长可以修改,不要忘了修改步骤2中的900)。
效果图如下:
首次找回密码提示:
15分钟内找回密码提示:
这样就限制恶意用户频繁发送邮件了!