Dreamhost官方竟知道DedeCMS的漏洞 – 织梦/DedeCms在Dreamhost等国外Linux主机下不能采集的解决方法
起因是这样的,恋吧的插件网 http://plugin.bzlba.com 以前因为漏洞导致VPS被取消过N次,和官方沟通保证甚至发誓了多次的折腾后,不得已将采集功能能关闭,禁用了多个函数,终于没有出现短时间大量流量导致VPS被取消的情况了!但是问题就出来了,因为禁用函数过大,导致无法发布文章,这是次要的。重要的是,我在同一台VPS上放了一个PT小说站,http://book.l-ba.cn ,因为是小偷程序,采集是必须的了。
所以没办法,我就将恋吧的插件网搬到dreamhost了,没想到问题就来了。搬上去还没到两个小时!官方发来了这样一封邮件:
Hello,
During a scan of our servers we have identified that your dreamhost account is hosting an insecure website which may be targeted for malicious purposes or has already been compromised.
You appear to have an insecure version of the popular DedeCMS software on our server. Due to an increase in attacks against this software we have been forced to disable insecure versions until the webmasters are able to address this matter and upgrade their sites the a secure version. The current version of DeDeCMS is 5.7 released on 2011-10-15.
We have disabled any insecure sites found until you are able to address this matter, this is for the safety of our servers and the customers you share them with. We will require that you take a few minutes to address this matter and secure your account from further abuse.
Please note that re-enabling these insecure sites may result in the disablement of your account.
If you have any questions, please feel free to contact our support staff (make your subject line include ATTN: Security) and we will be more than happy to assist you with securing your sites.
Sincerely,
The dreamhost security team
翻译成中文大概是:
在我们的服务器进行扫描,我们已经确定了dreamhost的帐户托管不安全的网站,该网站可针对恶意的目的,或已经失密。
你似乎有不安全的一个DEDECMS我们的服务器上的流行软件的版本。由于增加对这个软件的攻击,我们已被迫停用不安全的版本,直到管理员能够解决这一问题,并提升其网站的安全版本。的DEDECMS当前版本是5.7发布于2011年10月15日。
我们已禁用发现任何不安全的网站,直到你能够解决这个问题,这是我们的服务器和你分享他们与客户的安全。我们会要求您花几分钟来解决这一问题,并取得进一步滥用您的帐户。
然后网站打开显示不得不说,这是一个很神奇的事情,dedecms 有这么流行吗?dedecms 有这么严重的漏洞吗?
这阵子又把玩了下dedecms,看看这dedecms5.5的功能到底何等强大。于是乎上传到我的dreamhost主机下,用个临时的域名跑了起来。玩着玩着便发现无法采集,连DEDE发布文章的下载远程图片和资源都无法使用。怪哉。
遂想起此前似乎见过文章说dreamhost的主机禁用了allow_url_fopen,导致无法采集。于是乎在网上找啊找,找到了几篇文章均是自己编译php来让dreamhost支持采集。于是乎也参照dreamhost官网的介绍,透过ssh,折腾了大半天终于完成了编译好自己的php,兴高采烈的跑上系统采集一下,依旧失败告终。上传个探针一看,allow_url_fopen确实是启用着,怪哉。再继续Google之,随后反复测试证明,其实dreamhost默认是启用了allow_url_fopen的,网上那些介绍的文章基本都是08年或以前的文章,所以想必是dreamhost自己想通了放开这个限制吧。
折腾了两天,偏不信邪,上传多个Supesite和php168上去,安装、采集一气呵成。你个乖乖,原来是dede自己采集不了。纳闷。上dede官网搜寻一番,也发现有些网友也是在反应在国外Linux主机下采集不了。于是乎,终于找到了解决方法,就是改个文件而已。原先发现解决方法的那篇文章忘记在哪看了,只有本机的一个改后的文件而已,在此谢过那位老兄。
出问题的文件在include/dedehttpdown.class.php这个文件,用本文提供的附件覆盖上去后,便可以畅快的使用采集功能,在发表文章时亦能舒爽的使用“下载远程图片和资源”这个功能。经过比对这个文件,发现修改了两处地方。
1、注释掉第280行的代码,如下:
代码如下:
// fputs($this->m_fp, $headString);
2、找到304行的代码,替换成如下代码:
代码如下:
$headString .= “Connection: Closernrn”;
//fputs($this->m_fp,”Connection: Closernrn”);
3、找到308行的代码,替换成如下代码:
代码如下:
$headString .= “rn”;
//fputs($this->m_fp,”rn”);
4、在315行的代码“//获取应答头状态信息”上面插入如下代码:
代码如下:
fputs($this->m_fp, $headString);
最后大功告成,你也可以下载我修改好的代码,点击这里下载:http://file.bzlba.com/81351
























