最近看了百度云加速后台的数据报表,发现有很多针对WordPress的攻击,其实就是利用xmlrpc.php文件来攻击。虽然目前站点一切安好,但是据说如果不采取相应措施解决的话,很有可能会被这些攻击导致占用资源过高最终导致服务器宕机。所以我们还是有必要采取一些措施来来减少这种事情的发生。
那么到底XML-RPC到底是个什么鬼呢?XML-RPC的全称是XML Remote Procedure Call,即XML远程方法调用。它是WordPress离线发布协议,如果你习惯使用Windows Live Writer来撰写和发表文章,就必须启用该功能,否则建议您关闭,以免存在安全隐患,让垃圾留言和 Trackback Spam 等有可乘之机。
那么我们应该如何关闭这个功能或解决被他人利用xmlrpc.php文件攻击呢?根据网上搜索的结果,大致有三种办法来解决:
方法一:关闭XML-RPC (pingback) 的功能
我们只需要在主题functions文件中添加以下代码即可关闭XML-RPC功能:
//关闭XML-RPC的pingback端口
add_filter('xmlrpc_enabled', '__return_false');
不过感觉不起作用,访问该文件还是会出现“XML-RPC server accepts POST requests only.”。
方法二:Apache通过.htaccess禁止用户访问xmlrpc.php文件
# protect xmlrpc
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
方法三:nginx禁止访问xmlrpc.php文件
location = /xmlrpc.php {
deny all;
}
如果你使用的是服务器并且安装有宝塔面板,那么想要禁止访问这个xmlrpc.php文件非常简单,而且有两种方法实现,具体请参考『宝塔面板如何禁止访问xmlrpc.php文件(WordPress站点禁用xmlrpc.php)』。或者通过在WordPress后台安装插件来禁止访问xmlrpc.php文件,具体请参考『WordPress站点怎么禁用xmlrpc.php?推荐安装Disable XML-RPC-API插件』。