此文章仅供学习和研究使用,请在下载后24小时内删除

xmlrpc.php文件经常被扫描攻击,导致服务器负载过高怎么解决? – 网站教程

最近我们的网站遭受大量来自 xmlrpc.php 的 POST 请求,这导致服务器的 CPU 负载急剧上升,同时内存占用也高于平时水平,我们怀疑遭受了扫描攻击。这对WordPress站点的安全构成了威胁,因此我们必须高度重视。

XML-RPC 是用于WordPress与其他系统之间进行通信的协议规范。除了用于移动应用程序外,它还用于WordPress与其他博客平台之间的通信,以及支持引用和 pingback。然而,由于REST API已经集成到WordPress核心中,xmlrpc.php 文件现在已经不再被用于这种通信目的。

064393f1d5151227-1024x295

 

禁用 xmlrpc.php 方法

现在有必要在站点上禁用 xmlrpc.php,但许多站长可能不清楚如何完成这一操作。尽管最简单的方法是直接删除该文件,但由于WordPress经常更新,这会导致文件重新生成。 在这种情况下,我将分享五种禁用 xmlrpc.php 的方法供大家选择:

1. 使用插件禁用 xmlrpc.php

插件名称:Disable XML-RPC(By Philip Erb)
插件地址 https://wordpress.org/plugins/disable-xml-rpc/

2. 函数禁用 xmlrpc.php

在当前主题的 functions.php 文件中添加以下代码即可关闭 xmlrpc.php:

//通过 functions.php 函数文件禁用 xmlrpc.php
add_filter('xmlrpc_enabled', '__return_false');

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;
}

4. Nginx/Apache 禁用 xmlrpc.php

Nginx 配置规则:

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

Apache 配置规则:
在 .htaccess 文件开头添加以下代码:

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

5. 云防火墙 CDN 禁止访问

这需要确保您的服务器IP得到保护,不被发现,然后可以配置云防火墙或CDN,阻止对xmlrpc.php的访问。这种方法可以进一步减少服务器性能开销,因为请求还未到达服务器就已被拦截。

dc3d9f4fa5151211-1024x167

 

另外,如果您使用宝塔的Nginx防火墙,也可以使用防火墙来阻止对xmlrpc.php的访问。但需要注意这样做可能会占用服务器资源。在确保IP不泄露的情况下,使用云端防火墙或CDN来阻止访问是最佳选择。

温馨提示:本文最后更新于2024-06-28 10:16:01,文章具有时效性,若有错误或失效,请在下方留言或联系站长
喜欢就支持一下吧
点赞6赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

夸夸
夸夸
还有吗!没看够!
取消
昵称常用语表情代码图片

    暂无评论内容