admin 发表于 2023-3-24 21:40:50

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/plugins/disable-xml-rpc/
二、函数禁用 xmlrpc.php
在当前主题的 functions.php 文件添加下面这行代码就能关闭 xmlrpc.php

//通过 functions.php 函数文件禁用 xmlrpc.php
add_filter('xmlrpc_enabled', '__return_false');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;
}location ~* ^/xmlrpc.php$ {
return 403;
}<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>


退而求其次,如果你有使用宝塔的 Nginx 防火墙,那么也可以使用防火墙来阻止 xmlrpc.php 访问。但是这个毕竟还是会涉及服务器资源的占用,在能够做好 IP 不泄露的情况下,使用云端防火墙或 CDN 去阻止是最好的!



透明 发表于 2023-3-30 22:23:37

顶起顶起顶起

小东邪 发表于 2023-3-30 23:54:38

过去的事情可以不忘记,但一定要放下。

说得来 发表于 2023-3-31 02:16:35

钓鱼岛是中国的,沙发是我的!

畅想2000 发表于 2023-3-31 02:35:26

我是露珠的小伙伴,我来帮露珠顶一个帖,露珠早点得到解答哟

依依回首 发表于 2023-3-31 13:12:32

坐沙发喽,楼主给赏钱不?
页: [1]
查看完整版本: xmlrpc.php 被扫描攻击,导致服务器负载过高怎么办?