wordpress的xmlrpc.php被攻击导致cpu超高而空间崩溃

最近我的wordpress空间总是报“资源使用超限”的错误,经常导致网站进不去了。而且有时候是我忙了好多天偶然来看下网站,却发现不能访问,真是让人惶恐。

多数资源超限的情况,看空间的cpanel,都是cpu 100%,或Entry Processes达到了10,有一次是磁盘用光了。cpu 100%我以为是空间太差,磁盘用光了这种错哪会出现啊!?结果ftp登上去找了一圈,发现根目录下生成了一个400多M的.errlog文件,fuck!

磁盘满事件过去几天了,我网站还是经常崩溃,而空间商也找不到原因。让我很失望,都打算另找一家了。

结果今天进cpanel,在Metrics面板下看到了Visitors链接,一时好奇进去看,发现:

xmlrpc.php被攻击

翻了好几页,都是xmlrpc.php的访问记录,而且从时间上就很容易发现,完全是机器刷的而非正常访问。

百度一搜(好吧,犯懒了),发现这是一个针对wordpress非常出名的攻击方式。对不熟后台的我来说,我也不想太多,只是把看到的解决办法转一下(来自):

第一种是屏蔽 XML-RPC (pingback) 的功能。

add_filter(‘xmlrpc_enabled’, ‘__return_false’);

第二种方法就是通过.htaccess屏蔽xmlrpc.php文件的访问(个人推荐

# protect xmlrpc
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>

第三种同样的是修改.htaccess文件,如果有用户访问xmlrpc.php文件,然后让其跳转到其他不存在或者存在的其他页面,降低自身网站的负担。

# protect xmlrpc
<IfModule mod_alias.c>
Redirect 301 /xmlrpc.php http://example.com/custom-page.php
</IfModule>

我用的第2种,之所以不用第一种,是因为害怕每次更新wordpress都要重改。现在可以手动访问下xmlrpc.php,会发现拒绝访问了。

如果你也不幸碰到资源超限的问题,也请查看一下网站的访问记录(不是在站长工具里查,是在空间管理后台如cpanel中查哈)

 

发表评论

电子邮件地址不会被公开。