xmlrpc.php 是什么?为什么它成了黑客的最爱?

最近我的网站后台频繁出现针对 /xmlrpc.php 的恶意请求,看着大量扫描和攻击日志,实在影响服务器稳定。今天就用最直白的话,讲清楚这个文件为什么总被攻击,以及最有效、最彻底的解决办法。

xmlrpc.php 被攻击截图

一、xmlrpc.php 到底是什么?

/xmlrpc.php 是 WordPress 早期自带的一个远程接口文件,主要用于远程发布、文章同步、站内通知等功能。

但现在 WordPress 已经有了更安全的 REST API,99% 的网站根本用不上 xmlrpc.php,它反而成了黑客最喜欢攻击的目标。

二、为什么它总被攻击?
1. 暴力破解效率极高

不同于后台登录页一次只能试一个密码,xmlrpc.php 允许一次请求批量尝试几十上百组账号密码,黑客很容易绕过防护,暴力破解成功率极高。

2. 能被用来发起 DDoS 攻击

黑客可以利用 pingback 机制,让你的服务器去请求其他网站,把你的机器变成攻击肉鸡,严重消耗带宽和资源。

3. 历史漏洞多、扫描成本极低

几乎所有 WordPress 站点默认都存在这个文件,黑客用工具批量扫描即可命中,攻击成本极低,因此被频繁盯上。

4. 请求会直接消耗服务器资源

哪怕你关闭了功能,只要文件能访问,攻击请求依然会占用 PHP 进程、硬盘日志、服务器性能。

三、最有效的解决方法:服务器层直接拦截(推荐)

很多人会用代码关闭 xmlrpc 功能,但请求依然会进入 WordPress,治标不治本。

真正安全的做法是:

在服务器层面直接拦截,让请求连 PHP 都碰不到。

下面提供 Nginx 和 Apache 两种环境的配置,你用哪种就加哪种。

四、Apache 环境配置(.htaccess)

如果你的服务器是 Apache,直接在网站根目录的 .htaccess 文件最顶部加入:

apache

# 屏蔽 xmlrpc.php 攻击
<Files "xmlrpc.php">
Require all denied
</Files>

添加后直接生效,无需重启服务。

五、Nginx 环境配置

在网站的 Nginx 配置文件的 server {} 内添加:

nginx

# 彻底屏蔽 xmlrpc.php 攻击
location = /xmlrpc.php {
deny all;
access_log off;
log_not_found off;
}

添加后重启 Nginx 即可生效。

六、两种拦截方式对比
1. Apache 配置

优点:无需重启服务,修改方便,适合虚拟主机

效果:直接拒绝访问,安全可靠

2. Nginx 配置

优点:效率最高,不记录攻击日志,不占服务器资源

效果:最彻底、最稳定,是生产环境首选

七、验证是否成功

访问:

你的域名/xmlrpc.php

如果返回:

403 Forbidden

说明防御已100% 生效

八、不推荐:只在 wp-config.php 里关闭

很多教程会让你加一行代码:

php

运行

add_filter('xmlrpc_enabled', '__return_false');

但这种方式只能关闭功能,不能拦截请求,攻击依然会打到你的服务器,消耗资源。

所以:

能在服务器拦截,就不要用代码关闭。

九、总结

/xmlrpc.php 是 WordPress 历史遗留的高风险入口,对普通网站毫无用处,却会带来大量攻击。

只需要 1 分钟配置:

  • Apache → 加 .htaccess 规则
  • Nginx → 加一段 location 配置

就能让你的网站减少 90% 的恶意扫描和暴力破解

如果你也被这类攻击骚扰,建议立刻加上。如果你有更好的方式欢迎交流!!

© 2026 EVAN.XIN · Attribution Required

消息盒子
# 您有6条未读消息 #
# 您需要首次评论以获取消息 #
# 您需要首次评论以获取消息 #

只显示最新10条未读和已读信息