在网站管理中,有效防止恶意注册和灌水行为是保障用户体验和数据安全的重要环节。以下是一些实用的设置方法,帮助您提升网站的安全性和稳定性。

一、验证码

1、开启验证码
会员注册:后台>“系统设置”>“参数设置”>“用户设置”里开启。
发布投稿:修改终极栏目选项设置里的投稿设置。
会员登陆:同样在后台>“系统设置”>“参数设置”>“用户设置”里开启。
其他地方可以通过参数设置中的相关选项进行调整。

2、验证码参数设置
后台>“系统设置”>“参数设置”>“基本属性”:
验证码字符组成:推荐使用“数字+字母”以增加复杂性。
验证码过期时间:建议设置较短的时间,例如30秒,表示从填写信息到提交表单的最长时间间隔。
验证码加密字符串:定期修改此字符串,特别是在遭受攻击时。

二、设置表单提交来源

后台>“系统设置”>“参数设置”>“基本属性”>“前台允许提交的来源地址”:
http://域名/
可以将所有表单提交的具体路径加入,如投稿表单:http://域名/e/DoInfo/AddInfo.php。

三、设置发布时间间隔

会员注册:后台>“系统设置”>“参数设置”>“用户设置”>“同一IP注册间隔限制”,通常设为24小时。
发布投稿:后台>“系统设置”>“参数设置”>“信息设置”>“重复投稿时间限制”,建议设为30秒以上。

四、新会员投稿限制

发布投稿:后台>“系统设置”>“参数设置”>“信息设置”>“新会员投稿限制”,一般可设为30分钟或60分钟。
注意:此功能仅在栏目投稿权限设置为会员时生效。

五、栏目设置会员才能发布投稿

修改终极栏目选项设置里的投稿设置。

六、会员注册采用邮件激活

后台>“系统设置”>“参数设置”>“用户设置”里开启。

七、限制会员每天投稿数量

后台>“用户面板”>“管理会员组”>修改会员组里可以限制会员每天投稿数量。
此方法仅在栏目投稿权限设置为会员时生效。

八、定期修改前台COOKIE变量前缀

方法1:修改e/class/config.php文件里的$phome_cookievarpre变量内容。
方法2:后台>“系统设置”>“安全参数配置”里修改(适用于6.5以上版本)。

九、表单设置必填项

给会员表单或系统模型设置一个隐藏的必填项:

1、会员注册表单:
(1) 后台>“用户面板”>“管理会员字段”>增加一个字段,字段类型TINYINT(1)。
(2) 后台>“用户面板”>“管理会员表单”>修改会员表单:
选择刚才增加的字段为录入项、必填项、可增加、可修改;
会员表单模板里加:

2、信息投稿表单:
(1) 后台>“系统设置”>“管理数据表”>“管理字段”>增加一个字段,字段类型TINYINT(1)。
(2) 后台>“系统设置”>“管理数据表”>“管理系统模型”>修改系统模型:
选择刚才增加的字段为录入项、投稿项、必填项、可增加、可修改;
录入表单模板和前台投稿表单模板里都加:

十、自制COOKIE或SESSION验证

$empirecms_post_key='fdsai388f2f823fff'; //密钥
$empirecms_post_date='Y-m-d-H-i'; //验证时间格式
$empirecms_post_domain='http://www.phome.net'; //验证域名地址
$empirecms_post_ck_var='abcdkpjtf'; //验证COOKIE变量名
$empirecms_post_chkey=md5($empirecms_post_key.date($empirecms_post_date).$empirecms_post_domain.$empirecms_post_ck_var);
esetcookie($empirecms_post_ck_var,$empirecms_post_chkey);

注意事项:表单端和接收端的密钥、验证时间格式、验证域名地址、验证COOKIE变量名要一致,内容自行修改,定期更新。

十一、屏蔽IP段

后台>“系统设置”>“参数设置”>“用户设置”>“访问控制设置”,可设置禁止 IP 访问。

技巧:
执行SQL前请先备份数据。
1、批量删除未审核会员SQL:
delete from phome_enewsmember where checked=0;
delete from phome_enewsmemberadd where userid not in (select userid from phome_enewsmember);
2、批量删除某一会员ID段会员SQL:
delete from phome_enewsmember where userid>=2500 and userid<=3000;
delete from phome_enewsmemberadd where userid>=2500 and userid<=3000;

其他说明:
一般开启验证码就能提供基础防护(记得定期更改“验证码加密字符串”)。如果对方针对您的网站定制灌水工具,需结合上述多种方法综合防御。