WordPress REST API与xmlrpc.php安全区别_推荐配置_站长安全必读
WordPress的pingback攻击属于反射型DDoS的一种,攻击者不需要控制大量肉鸡,只需要找到开启了pingback功能的WordPress站点,通过构造特制的xmlrpc请求,就能让这些站点向指定目标发送HTTP请求。由于请求来自正常的WordPress网站,很难被目标网站的防火墙拦截。作为WordPress站长,关闭不必要的pingback功能既是保护自己,也是保护互联网安全。
pingback攻击的日志特征比较明显。正常的xmlrpc.php请求通常来自WordPress移动端应用或Jetpack等插件,User-Agent包含WordPress或特定插件标识。而攻击请求的User-Agent多样,请求体中包含
第四种是通过functions.php添加代码禁用。在主题的functions.php中添加:add_filter('xmlrpc_enabled', '__return_false'); 这会禁用XML-RPC的认证方法,但pingback.ping方法仍然可用,所以不够彻底。更全面的代码是:add_filter('wp_xmlrpc_server_class', function() { return 'wp_xmlrpc_server_disabled'; }); 或者直接移除pingback相关的action。推荐使用服务器层面的禁用方式,代码方式作为补充。
禁用pingback后需要评估对网站功能的影响。如果使用WordPress官方移动端应用发布文章,需要XML-RPC支持,禁用后无法使用移动端应用,可以改用WordPress REST API或直接在后台发布。如果使用Jetpack插件,部分功能依赖XML-RPC,禁用后可能需要在Jetpack设置中调整。如果使用了第三方发布工具(如Windows Live Writer),也需要XML-RPC。对于大多数只在后台发布文章的站长,禁用XML-RPC完全没有影响。
站长反馈:网站突然被服务器商通知在对外攻击,排查后发现是xmlrpc.php被利用进行pingback攻击。在.htaccess中禁用xmlrpc.php后,攻击请求立即停止,服务器负载恢复正常。后来检查发现这个功能从来没用过,白白承担了安全风险。
安全提示:WordPress的xmlrpc.php历史上出现过多个安全漏洞,包括爆破漏洞、SSRF漏洞等。即使不担心被利用进行DDoS攻击,从安全角度也建议禁用XML-RPC,改用更安全的REST API。

更新时间:2026-08-30 13:21:36