禁用WordPress 的 xmlrpc.php
xmlrpc.php其实是一项允许远程连接到WordPress的功能。该API为桌面应用程序和移动应用程序的开发人员提供了与WordPress网站进行通信的能力。 通过该API,开发人员可以编写应用程序,使您在通过网络界面登录WordPress时可以执行许多操作
当服务器的访问记录里面看到 WordPress 的 xmlrpc.php 被大量请求,导致服务器负载居高不下,其实是有人盯上你了。
因为 xmlrpc.php 文件存在安全隐患,给攻击者提供了便利,所以攻击者的一项工作就是扫描 xmlrpc.php 文件,以便可以:
- XML-RPC pingbacks 攻击,攻击者可以利用 XML-RPC 的 pingbacks 方法对 WordPress 实行 DDoS (分布式拒绝服务)攻击,如果你使用了 CDN 服务商的 DNS 保护服务,攻击者还可以使用 pingbacks 方法获取站点的真实 IP,剩下不用我说了吧。
- 即使 WordPress 设置了登录次数限制,但是使用 XML-RPC 暴力破解 WordPress 的账号密码却逃过了限制,并且 XML-RPC 一次请求就可以执行上百次密码的暴力破解。
方法1
删除xmlrpc.php文件,但是随着wp版本升级,还会再次出现。方便但不推荐
方法2
使用服务器工具fail2ban限制xmlrpc的访问频次
方法3
屏蔽XML-RPC,可以在当前主题的 functions.php增加下述代码
add_filter('xmlrpc_enabled', '__return_false');
方法4
nginx 服务器可以添加下面的规则
location ~* ^/xmlrpc.php$ {
return 403;
}
add_filter('xmlrpc_enabled', '__return_false');
方法5
在 WordPress 的 wp-config.php 文件最开始的地方添加:
if(strpos($_SERVER['REQUEST_URI'], 'xmlrpc.php') !== false){
$protocol = $_SERVER['SERVER_PROTOCOL'] ?? '';
if(!in_array($protocol, ['HTTP/1.1', 'HTTP/2', 'HTTP/2.0', 'HTTP/3'], true)){
$protocol = 'HTTP/1.0';
}
header("$protocol 403 Forbidden", true, 403);
die;
}
当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »