最近我的网站后台频繁出现针对 /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





赶快写下您的首评!