帝国CMS安全篇之限制IP次数反复提交信息反馈
思良:封IP不是办法,还是学习下技术,看这篇能不能解决
<p>有很多站长反映什么程序在<a href="http://www.51php.com/" target="_blank" style="margin: 0px; padding: 0px; outline: none; color: rgb(95, 106, 169); text-decoration: none; background: url(http://www.51php.com/wp-content/themes/starow/images/dot.gif) 0% 100% repeat-x;">php空间</a>怎么就那么的不安全,其实程序的安全与不安全与维护有很大的关系,就好比<a href="http://www.51php.com/dedecms" target="_blank" style="margin: 0px; padding: 0px; outline: none; color: rgb(95, 106, 169); text-decoration: none; background: url(http://www.51php.com/wp-content/themes/starow/images/dot.gif) 0% 100% repeat-x;">dedecms</a>吧,漏洞百出,只要把该有的漏洞给解决了,再大的本事也挂不进去了吧,当然这个是无忧主机小编的无稽之谈,不算是结论哈,但是今天站长朋友提出的的结果非常的重要,可能也是帝国cms使用的朋友的一个烦心事情吧:<br style="margin: 0px; padding: 0px; outline: none;" />
当给信息反馈页面加上了验证码之后,突然发现还是不怎么防止恶意的提交,虽然这个不是在刷了,但是页面的可观度还是要的吧。所以有必要加上ip的限制,也就是说这个ip提交了这次,那么就不能进行对下一次的提交,那么这个就是需要用代码进行判断反馈的。既然知道了方法,那么就很简单,一般懂php程序的站长朋友应该没有问题的,只是不知道放在哪里而已,那么今天无忧主机小编就来谈谈:<br style="margin: 0px; padding: 0px; outline: none;" />
首先找到这个路径e/class/q_functions.php,用专业的编辑器打开(ps:千万不要用记事本进行打开),然后找到if($br[‘groupid’])然后在这个代码的前面放入一下代码:</p>
<pre class="brush: php; gutter: true" style="margin-top: 0px; margin-bottom: 0px; padding: 0px; outline: none; color: rgb(51, 51, 51); font-size: 15px; line-height: 21px;">
//IP是否存在
$sip=egetip();
$sbr=$empire->fetch1("select ip from {$dbtbpre}enewsfeedback where ip='$sip';");
if(!empty($sbr['ip']))
{
printerror("ReDoForPl","history.go(-1)",1);
}</pre>
<p style="margin: 1em 0px; padding: 0px; outline: none; color: rgb(51, 51, 51); font-family: Arial, 微软雅黑, Helvetica, sans-serif; font-size: 15px; line-height: 21px;">就这样保存覆盖,那么这样就完美的实现了这个功能,是不是感觉很简单呢,这个是利用了帝国cms每次访问的时候都会记录ip到数据库中的,然后查询并进行判断。<br style="margin: 0px; padding: 0px; outline: none;" />
希望能帮助到站长朋友们!</p>
原文:http://www.51php.com/empirecms/19960.html