介绍
XML-RPC是WordPress的核心API之一,它允许用户使用第三方应用程序、工具和服务连接到他们的WordPress网站。WordPress网站上的XML-RPC默认是启用的,但也有用户会选择将其禁用,以防止潜在攻击。本文将介绍在WordPress网站禁用XML-RPC的几种常用方法。
危害
目前我遇到的主要还是暴力破解,其原理是绕过wp-login.php(所谓的登录验证码就失效了),利用收集到该站点的用户名信息,并发的进行穷举密码,从而达到暴力破解的目的。
下面我补充两张图作为参考:
在我安装了登录验证码、Limit Login Attempts插件的情况下每天都有几百次的暴力破解,很多小白安装完WordPress后根本没有意识到这个问题,并且他们都惯用admin,123456这种的用户密码,导致没过多久网站就被挂马的情况。
禁用xmlrpc
方法1 修改nginx/apache配置文件
在如果是lnmp,那就修改nginx的配置文件,在网站对应的配置文件中新增如下:
location = /xmlrpc.php {
deny all;
}
如果是lamp,那就在.htaccess配置文件中新增如下代码:
# protect xmlrpc
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
此时,访问/xmlrpc.php就会返回403错误。
方法2 新增代码
在一个不常更新并且开启的插件中,或者在theme中用户自定的代码中新增如下:
//关闭XML-RPC的pingback端口
add_filter('xmlrpc_enabled', '__return_false');
方法3 安装插件
对于懒人或者动手能力差的小白来说,安装插件最省事,这里就推荐一个插件:Disable XML-RPC-API。安装完成后自动就禁用xmlrpc了。
不便之处
禁用xmlrpc.php虽然得到了更安全的保障,但如果你想用移动端的wordpress app,那就无法实现了。所以,有利有弊, 取决于你的使用习惯。