随着DEDECMS使 用的站长越来越多,黑客也开始活动起来。争对DEDECMS的开源特性,很多能利用的漏洞,都被黑客利用从而进行攻击等。做为站长或服务器idc商,肯定 是想办法解决这些隐患的!所以很多idc空间商,都把虚拟主机用户的php.ini中的fsockopen函数给禁用了!导致dedecms无法采集。
前几天给一个客户安装程序的时候就碰到此问题。让客户和空间商沟通无果。本站搜搜源码结合多年的php开发经验,找不到了解决办法。如下:第一:原理我们是把fsockopen函数替换成pfsockopen函数,因为pfsockopen可保持keep-alive连接,使黑客无法持续性的攻击。第二:涉及到的dedecms文件有如下:
dedecms5.6有如下:include/dedehttpdown.class.phpinclude/dedecollection.func.php:include/mail.class.phpdede/module_main.phpdede/api_ucenter.php
dedecms5.7有如下:include/dedehttpdown.class.phpinclude/sphinxclient.class.phpinclude/dedecollection.func.php:include/mail.class.phpask/data/scores.inc.php:dede/module_main.phpdede/api_ucenter.phpplus/bshare.php
找到这些文件把其中的fsockopen替换成pfsockopen就可以了。有的人会说这么多文件一个一个的寻找。太累了。呵呵。别着急。本站提供相当方便快速替换方法。大家下载editplus工具使用在文件夹中查找替换就可以了。安装好editplus软件,选择编辑——在文件中替换——选择好DEDEcms目录,指定fsockopen替换成pfsockopen就可!