帝国CMS中防灌水 防群发的操作说明

发布时间:2020-05-01编辑:脚本学堂
本篇文章介绍了,在帝国cms中防止灌水、防止群发的一些功能介绍,有需要的朋友,可以参考下。


十、自制COOKIE或SESSION验证
此方法效果佳,但需要修改代码实现。下面我以COOKIE加密验证为例:
在表单页加以下PHP代码:(此代码前面不能有HTML输出,文件要导入e/class/connect.php文件)
 

复制代码 代码示例:
$empirecms_post_key='fdsai388f2f823fff';        //密钥
$empirecms_post_date='Y-m-d-H-i';                //验证时间格式,如何组合自己可以换字符位置与更改联接符-
$empirecms_post_domain='http://www.jb200.com';        //验证域名地址
$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);

在接收函数加以下PHP代码:
 

复制代码 代码示例:
$empirecms_post_key='fdsai388f2f823fff';        //密钥
$empirecms_post_date='Y-m-d-H-i';                //验证时间格式,如何组合自己可以换字符位置与更改联接符-
$empirecms_post_domain='http://www.jb200.com';        //验证域名地址
$empirecms_post_ck_var='abcdkpjtf';                        //验证COOKIE变量名
$empirecms_post_chkey=md5($empirecms_post_key.date($empirecms_post_date).$empirecms_post_domain.$empirecms_post_ck_var);
if(getcvar($empirecms_post_ck_var)!=$empirecms_post_chkey)
{
esetcookie($empirecms_post_ck_var,'');
exit();
}

注意:表单端和接收端的密钥、验证时间格式、验证域名地址、验证COOKIE变量名要一致,内容自行修改,上面只是例子。定期修改验证内容。

例子:(修改文件建议用DREAMWEAVER修改,可避免UTF-8被转成GBK编码)
1、以会员表单为例:
修改表单端文件:/e/member/register/index.php,打开文件搜索“$ecmsfirstpost=1;”,在这行下面加:
 

复制代码 代码示例:
$empirecms_post_key='fdsai388f2f823fff';        //密钥
$empirecms_post_date='Y-m-d-H-i';                //验证时间格式,如何组合自己可以换字符位置与更改联接符-
$empirecms_post_domain='http://www.jb200.com';        //验证域名地址
$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);

修改接收端函数文件:e/class/user.php,打开文件搜索“eCheckIpRegTime($regip,$pr['regretime']);”,在这行下面加:
 

复制代码 代码示例:
$empirecms_post_key='fdsai388f2f823fff';        //密钥
$empirecms_post_date='Y-m-d-H-i';                //验证时间格式,如何组合自己可以换字符位置与更改联接符-
$empirecms_post_domain='http://www.jb200.com';        //验证域名地址
$empirecms_post_ck_var='abcdkpjtf';                        //验证COOKIE变量名
$empirecms_post_chkey=md5($empirecms_post_key.date($empirecms_post_date).$empirecms_post_domain.$empirecms_post_ck_var);
if(getcvar($empirecms_post_ck_var)!=$empirecms_post_chkey)
{
esetcookie($empirecms_post_ck_var,'');
exit();
}

2、以投稿表单为例:
修改表单端文件:/e/DoInfo/AddInfo.php,打开文件搜索“$tbname=$cr['tbname'];”,在这行下面加:
 

复制代码 代码示例:
$empirecms_post_key='fdsai388f2f823fff';        //密钥
$empirecms_post_date='Y-m-d-H-i';                //验证时间格式,如何组合自己可以换字符位置与更改联接符-
$empirecms_post_domain='http://www.jb200.com';        //验证域名地址
$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);

修改接收端函数文件:e/class/qinfofun.php,打开文件搜索“$keyvname='checkinfokey';”,在这行下面加:
 

复制代码 代码示例:
$empirecms_post_key='fdsai388f2f823fff';        //密钥
$empirecms_post_date='Y-m-d-H-i';                //验证时间格式,如何组合自己可以换字符位置与更改联接符-
$empirecms_post_domain='http://www.jb200.com';        //验证域名地址
$empirecms_post_ck_var='abcdkpjtf';                        //验证COOKIE变量名
$empirecms_post_chkey=md5($empirecms_post_key.date($empirecms_post_date).$empirecms_post_domain.$empirecms_post_ck_var);
if(getcvar($empirecms_post_ck_var)!=$empirecms_post_chkey)
{
esetcookie($empirecms_post_ck_var,'');
exit();
}

十一、屏蔽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:(下面是删除2500~3000会员ID之间的会员)
 

delete from phome_enewsmember where userid>=2500 and userid<=3000;
delete from phome_enewsmemberadd where userid>=2500 and userid<=3000;

3、批量删除所有未审核的信息SQL:
 

delete from phome_ecms_news where checked=0;
delete from phome_ecms_news_data_1 where id not in (select id from phome_ecms_news);

4、批量删除所有标题包含“cms”的信息SQL:
 

delete from phome_ecms_news where where title like '%cms%';
delete from phome_ecms_news_data_1 where id not in (select id from phome_ecms_news);

其他说明:
一般开启验证码就能防护(记得定期更改“验证码加密字符串”)。
如果对方确实盯上你的站,针对你的网站来做灌水机,考虑用上面的其他方法结合。