xmlrpc.php经常被扫描攻击,导致服务器负载过高
xmlrpc.php经常被扫描攻击,导致服务器负载过高详细介绍
网站有大量 POST 请求 xmlrpc.php,导致 CPU 负载过高,内存也比平时占用更多,感觉是被人扫描攻击了。所以这个涉及到了 WordPress 安全,必须重视起来。
XML-RPC 是支持 WordPress 与其他系统之间通信的规范。XML-RPC 不仅用于移动应用程序:它还用于允许 WordPress 和其他博客平台之间进行通信,还支持引用和 pingback。但是由于 REST API 已集成到 WordPress 核心中,因此 xmlrpc.php 文件不再用于此通信。
禁用 xmlrpc.php 方法
因此,您现在应该在站点上禁用 xmlrpc.php,但是很多人不知道该如何停用 xmlrpc.php 文件,虽然将其删除是最简单的方法,但是由于 WordPress 经常升级,又会重新生成该文件,所以在此基础上,博主跟大家分享五个禁用 xmlrpc.php 的方法,供大家选择使用。
一、使用禁用 xmlrpc.php
-
名:Disable XML-RPC(By Philip Erb)
-
地址 https://wordpress.org/plug/disable-xml-rpc/
二、函数禁用 xmlrpc.php
在当前主题的 functions.php 文件添加下面这行代码就能关闭 xmlrpc.php
//通过 functions.php 函数文件禁用 xmlrpc.php add_filter ( 'xmlrpc_enabled' , '__return_false' ) ;
三、配置禁用
在 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; }
四、Nginx/Apache 禁用 xmlrpc.php
Nginx 规则
location ~* ^/xmlrpc. php $ { return 403 ; }
Apache 规则
在 .htaccess 文件前面添加以下代码。
< Files xmlrpc. php > Order Allow,Deny Deny from all < /Files >
五、云防火墙 CDN 禁止访问
这个的前提要求需要保护好自己的服务器 IP 不被发现,在此基础上可以在云防火墙或者 CDN 中写好阻止 xmlrpc.php 访问,比上述所有配置都要进一步降低服务器性能的消耗,因为它还没有请求你服务器就被拦截了。
,