这肯定不正常,这是由于什么?有什么办法处理吗?

XML-RPC 安全隐患

这是由于 xmlrpc.php 文件存在安全隐患,给攻击者供应了便利,以是攻击者的一项事情便是扫描 xmlrpc.php 文件,以便可以:

1. XML-RPC pingbacks 攻击,攻击者可以利用 XML-RPC 的 pingbacks 方法对 WordPress 实施 DDoS (分布式谢绝做事)攻击,如果你利用了 CDN 做事商的 DNS 保护做事,攻击者还可以利用 pingbacks 方法获取站点的真实 IP,剩下不用我说了吧。

php扫描文件WordPress 的 xmlrpcphp 经常被扫描怎么办 Docker

2. 纵然 WordPress 设置了登录次数限定,但是利用 XML-RPC 暴力破解 WordPress 的账号密码却逃过了限定,并且 XML-RPC 一次要求就可以实行上百次密码的暴力破解。

彻底屏蔽 XML-RPC

既然存在这些问题,那么最好关闭 WordPress 的 XML-RPC 做事,群里面有些小伙伴建议直接删除该文件就好了,但是删除了,WordPress 升级之后又会涌现,不太建议这么做。

最快的方法,只需在当前主题的 functions.php 文件添加下面这行代码就能关闭它:

add_filter('xmlrpc_enabled', '__return_false');

WPJAM Basic 插件的「优化设置」也有该选项(下图末了一个),直接勾选即可:

利用 PHP 代码或者插件办法关闭,xmlrpc.php 文件被扫描的时候,还是会加载全体 WordPress 代码,以是如果你不想摧残浪费蹂躏做事器资源在这上面,可以利用下面的办法屏蔽做事器上 xmlrpc.php 文件的要求:

1. Apache 可以通过在 .htaccess 文件前面添加以下代码:

<Files xmlrpc.php>Order Allow,DenyDeny from all</Files>

这时候访问 xmlrpc.php,页面显示:

2. nginx 做事器可以添加下面的规则:

location ~ ^/xmlrpc.php$ {return 403;}

3. 如果以上两个办法都不好用,还可以在 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;}

这时候访问 xmlrpc.php,页面显示: