拯救xmlrpc.php让WordPress瘫痪的的六种办法

今天对于我来讲 是个战斗的日子,上午发布完文章后,很快360好搜就收录了,但在打开网页的时候,卡主了,没有反应,快速的重启Apache,立刻恢复,但过了几分钟,网站又打不开,干脆重启服务器,问题获得解决,过了一会,悲剧再次发生,查看网站防御日志,原来有个IP不停的访问xmlrpc.php文件,形成服务器瘫痪,也就是说对方在放大型暴力猜解攻击,应该是传说中的xmlrpc暴力破解密码致使,缘由在于使用的wordpress程序默认xmlrpc.php开启,而被用来DDOS攻击致使占用资源太高,果断把这个IP拉成黑名单,仍是失败,下面分享一下解决方法。php

咱们都知道xmlrpc.php文件位于网站根目录下,其实我对这个文件一直没有放在心上,认为个人网站放在了阿里云,又加了服务器安全防御,何况WP团队早就解决了漏洞,不过确实存在一种另类的wordpress暴力特别攻击,估计利用xmlrpc.php文件来绕过wordpress后台的登陆错误限制进行爆破。
那么咱们应该如何关闭这个功能或解决被他人利用xmlrpc.php文件攻击呢?根据网上搜索的结果,大体有六种办法来解决:html

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

functions.php中添加nginx

​
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>

第四种阻止pingback端口

functions.php中添加服务器

add_filter( 'xmlrpc_methods', 'remove_xmlrpc_pingback_ping' );
function remove_xmlrpc_pingback_ping( $methods ) {
unset( $methods['pingback.ping'] );
return $methods;
}

第五种nginx服务器配置

location ~* /xmlrpc.php {
    deny all;
}

第六种安装插件

安装Login Security Solution插件(这个没有测试,你能够试试)wordpress

小结

一、不要直接删除xmlrpc.php,不然它会让你的wordpress网站发生莫名的错误。
二、建议采用方法 2
三、其实扫描也罢,http的DDOS攻击也罢,CC攻击也罢,总之大量消耗服务器资源咱们的服务器是累死的。
五、若是你正在使用如JetPack之类的插件,删除掉这个文件可能会让你的网站功能异常。
六、建议把WP升级到最新版本,其实个人就是最新的WP4.5.3,仍是要相信新版本漏洞少一点吧。
七、通常这个功能是用不到的,咱们直接屏蔽掉,默认当前的WP版本是开启的。这样,咱们就能够解决WordPress被利用xmlrpc.php暴力破解攻击问题。有些时候并非针对咱们的网站攻击,而是对方利用某个关键字扫到咱们的网站形成的。测试

参考文章:网站


▪ wp-super-cache启用时出现WP_CACHE constant added to wp-config.php的解决方法阿里云

▪ 开启Gzip压缩加快你的wordpress网站加载浏览速度spa

▪ 修改WordPress上传文件大小限制的三种方法