在WordPress根目录下xmlrpc.php干什么的?简单地说就是Wordpress 为手机等客户端提供的接口文件,早期的Wordpress 这个接口就是个万恶之源,现在也不太安全,恶意程序会不断尝试扫描这个文件,造成主机资源耗尽而瘫痪,很多WP用户用都遇到过主机商的类似警告“占用资源高”的提示,与这个接口有很大的关系。
如果不链接小程序、不离线发表文章,删除WordPress根目录的xmlrpc.php文件,也可以清空里面的内容,保留一个空文件,不会影响正常的WordPress运行。删除xmlrpc.php
是防御针对该文件的 DDOS 攻击的有效方法,因为 WordPress 的xmlrpc.php
经常成为攻击目标(尤其是通过批量 pingback 功能发起的 DDOS)。以下是具体的操作方法和替代方案:
通过 FTP / 文件管理器操作
登录服务器(或通过 WordPress 后台的文件管理插件),找到网站根目录下的xmlrpc.php
文件,直接删除或重命名(例如改为xmlrpc.php.bak
)。
-
- 优点:立即生效,彻底攻击无法再该文件发起请求。
- 注意:WordPress 更新时可能会自动恢复该文件,需要定期检查或配合其他方法加固。
如果担心想完全保留文件但禁用其功能,可在主题的functions.php
或自定义插件中添加代码:
// 完全禁用XML-RPC功能
add_filter('xmlrpc_enabled', '__return_false');
// 禁用pingback相关功能(防止间接利用)
add_filter('xmlrpc_methods', function($methods) {
unset($methods['pingback.ping']);
unset($methods['pingback.extensions.getPingbacks']);
return $methods;
});
// 拦截pingback请求(进一步加固)
add_action('wp_head', function() {
if (is_singular()) {
remove_action('wp_head', 'rsd_link'); // 移除RSD链接(包含xmlrpc地址)
remove_action('wp_head', 'wlwmanifest_link');
}
});
作用:不仅禁用 XML-RPC 功能,还移除页面中暴露xmlrpc.php
地址的标签(如rel="EditURI"
),避免被攻击目标识别。
在网站根目录的.htaccess
文件中添加规则,直接拒绝所有对xmlrpc.php
的请求:
# 屏蔽xmlrpc.php访问
<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>
优点:通过服务器层面拦截,比 PHP 代码更高效,且不受 WordPress 更新影响。
如果使用 Nginx,在站点的 Nginx 配置文件中添加:
# 屏蔽xmlrpc.php访问
location /xmlrpc.php {
deny all;
return 403;
}
添加后重启 Nginx 服务生效。
功能影响
禁用xmlrpc.php
后,依赖该文件的功能会失效,例如:
- 远程发布文章(如通过移动客户端)
- WordPress 的 pingback/trackback 功能
- 部分第三方服务(如某些备份插件、社交媒体同步工具)的 API 调用
如果需要这些功能,可改用插件(如 Jetpack)提供的替代方案,或仅限制特定 IP 访问。
替代方案
-
- Disable XML-RPC Pingback:仅禁用 pingback,保留其他 XML-RPC 功能
- Wordfence:通过防火墙规则拦截恶意请求,同时允许正常使用
通过以上方法,可有效阻止针对xmlrpc.php
的 DDOS 攻击,同时根据实际需求平衡功能与安全性。对于多数中小型站点,推荐直接删除文件或通过.htaccess/Nginx
屏蔽,简单且高效。
本站部分资源来源于用户上传和网络公开信息,如有侵权请邮件联系站长:237914037@qq.com,分享目的仅供大家学习和交流,您必须在下载后24小时内删除!本站提供的源码、模板、插件等等其他资源,不包含技术服务请大家谅解! 如有链接无法下载、失效或广告,请联系管理员处理!默认解压密码为:sonay.cn