WordPress网站定制开发专家
WordPress企业主题特惠

赞一个 0

xmlrpc.php是一个用于授权从其他各种应用程序对WordPress进行远程更新的功能模块。 这篇文章将帮助您更全面地了解xmlrpc.php在网站中的功能属性,以及可能存在的安全风险,并教教您如何禁用来规避可能因该文件带来的安全风险。

WordPress中xmlrpc.php完整指南(功能、安全风险、如何禁用)
WordPress中xmlrpc.php完整指南(功能、安全风险、如何禁用)

xmlrpc.php其实是一项允许远程连接到WordPress的功能。该API为桌面应用程序和移动应用程序的开发人员提供了与WordPress网站进行通信的能力。 通过该API,开发人员可以编写应用程序,使您在通过网络界面登录WordPress时可以执行许多操作,包括:

  • 每当您上传新文件(例如文章图片)时;
  • 每当您发布文章时;
  • 每当您收到评论列表时;
  • 每当您编辑评论时;
  • 每当您编辑文章时;
  • 每当您删除文章时;

开发XML-RPC WordPress规范是为了标准化不同系统之间的通信,这意味着WordPress外部的应用程序(例如其他博客平台和桌面客户端)可以与WordPress进行交互。

自WordPress诞生以来,该规范一直是WordPress的一部分,并且做得非常有用。没有它,WordPress就会处于自己的孤岛,与互联网的其余部分分开。

但是,xmlrpc.php有其缺点。它可以向您的WordPress网站引入漏洞,现已被WordPress REST API取代,该API在将WordPress开放给其他应用程序方面做得更好。

什么是xmlrpc.php?

XML-RPC是支持WordPress与其他系统之间通信的规范。它通过使用HTTP作为传输机制和XML作为编码机制来标准化这些通信来实现此目的。

XML-RPC早于WordPress:它出现在b2博客软件中,该软件于2003年创建了WordPress。该系统的代码存储在站点根目录下的xmlrpc.php文件中。即使XML-RPC在很大程度上已经过时,它仍然存在。

在WordPress的早期版本中,默认情况下已关闭XML-RPC。但是从3.5版开始,默认情况下已启用它。这样做的主要原因是允许WordPress移动应用程序与您的WordPress安装进行对话。

如果您在3.5版之前使用WordPress移动应用程序,您可能会记得必须在站点上启用XML-RPC才能使该应用程序能够发布内容。这是因为该应用程序本身未运行WordPress。相反,它是一个单独的应用程序,使用xmlrpc.php与您的WordPress网站进行通信。

但是XML-RPC不仅用于移动应用程序:它还用于允许WordPress和其他博客平台之间进行通信,还支持引用和pingback,并为Jetpack插件提供了动力,该插件可链接自托管的WordPress WordPress.com网站。

但是由于REST API已集成到WordPress核心中,因此xmlrpc.php文件不再用于此通信。相反,REST API用于与WordPress移动应用程序,台式机客户端,其他博客平台,WordPress.com(用于Jetpack插件)以及其他系统和服务进行通信。的系统的REST API可与之交互的范围是大得多比xmlrpc.php允许的一个。此外,还有更多的灵活性。

由于REST API取代了XML-RPC,因此您现在应该在站点上禁用xmlrpc.php。让我们看看为什么。


为什么要禁用xmlrpc.php

您应该在WordPress网站上禁用xmlrpc.php的主要原因是因为它引入了安全漏洞, 并且可能成为攻击的目标。

既然不再需要XML-RPC在WordPress之外进行通信,就没有理由保持它的活动状态。这就是为什么通过禁用站点来提高其安全性是明智的。

如果xmlrpc.php是安全责任,并且不再起作用,那么为什么不将其从WordPress中完全删除呢?

这是因为WordPress的主要功能之一始终是向后兼容。如果您对网站进行了良好的管理,您将知道保持WordPress最新以及任何插件或主题是必不可少的。

但是总会有一些网站所有者不愿意或无法更新其WordPress版本。如果他们运行的版本早于REST API,则他们仍然需要访问xmlrpc.php。

让我们更详细地查看特定的漏洞。

通过XML-RPC Pingbacks进行DDoS攻击

xmlrpc.php启用的功能之一是pingback和Trackbacks。这些是当另一个博客或网站链接到您的内容时在您网站的注释中显示的通知。

XML-RPC规范使这种通信成为可能,但是它已被REST API取代(如我们所见)。

如果在您的站点上启用了XML-RPC,则黑客可能会利用xmlrpc.php在短时间内向您的站点发送大量pingback,从而在您的站点上发起DDoS攻击。这可能会使服务器超载,并使站点无法正常运行。

通过XML-RPC的蛮力攻击

每次xmlrpc.php发出请求时,它都会发送用户名和密码进行身份验证。这带来了重大的安全责任,而REST API却没有做到这一点。实际上,REST API使用OAuth来发送令牌进行身份验证,而不是用户名或密码。

因为xmlrpc.php随每个请求发送身份验证信息,所以黑客可以使用它来尝试访问您的站点。这样的暴力攻击可能使他们可以插入内容,删除代码或破坏数据库。

如果攻击者向您的站点发送了足够多的请求,每个请求使用不同的用户名和密码对,则他们最终有可能会命中正确的请求,从而使他们可以访问您的站点。

因此,如果您正在运行WordPress的最新版本(使用REST API与外部系统通信),则应禁用xmlrpc.php。不需要它,这可能会使您的网站易受攻击。

如何检查 xmlrpc.php 是否还在WordPress网站上运行?

您需要做的第一件事是确定xmlrpc.php是否正在您的WordPress网站上运行。

这不是检查文件是否存在的简单情况:它是每个WordPress安装的一部分,即使XML-RPC被禁用,该文件也将存在。

删除任何内容之前,请务必备份您的网站。在这种情况下,不要仅仅删除xmlrpc.php文件,因为它会破坏您的站点。

要检查您的站点上是否启用了xmlrpc.php,请使用WordPress XML-RPC验证服务。这将检查您的站点并告诉您是否启用了xmlrpc.php。

检查 xmlrpc.php 是否还在WordPress网站上运行
检查 xmlrpc.php 是否还在WordPress网站上运行

如果出现以上错误提示,这表明xmlrpc.php在wppop.com上已被禁用。因此,如果您运行检查并发现xmlrpc.php仍在您的站点上启用,如何关闭它?

如何禁用xmlrpc.php

如果你的网站出现了“存在服务端请求伪造(SSRF)漏洞”问题,或者其他类似的网站安全问题,那您可能需要禁用你网站上的xmlrpc.php。禁用xmlrpc.php的方法有几种,可以通过安装插件来实现,也可以通过调整服务器配置来实现。下面就进行详细的接收。

使用插件禁用xmlrpc.php

安装插件以禁用xmlrpc.php是最简单的方法。实现这些禁用XML-RPC插件将完全禁用它。相关插件如下:

Disable XML-RPC:此插件可在运行3.5或更高版本的WordPress网站上运行。 在版本3.5或更高版本上运行的WordPress网站,默认情况下启用xmlrpc。 此外,删除了启用和禁用xmlrpc的选项。 所有者可能有许多原因要禁用该功能。 使用此插件,可以轻松完成。

Remove & Disable XML-RPC Pingback 禁用带有插件的XML-RPC Pingbacks;您不必成为pingback拒绝服务攻击的受害者。 激活插件后,将自动禁用xml-rpc。 这个插件最好的地方是,您无需进行任何配置。 禁用xmlrpc pingback时,将可以减少服务器CPU使用率。

REST XML-RPC Data Checker使用该插件配置XML-RPC和REST API激活

如果要对站点上的xmlrpc.php和REST API的配置方式进行更细粒度的控制,可以安装REST XML-RPC Data Checker插件

安装并激活此插件后,转到“设置”>“ REST XML-RPC数据检查器”,然后单击“ XML-RPC”选项卡。

这使您可以准确配置xmlrpc.php的哪些方面在您的站点上处于活动状态。另外,您也可以将其完全关闭。并且,如果您还想控制REST API,则该插件会为您提供另一个选项卡。


无插件禁用xmlrpc.php

如果您不想在自己的网站上安装其他插件,则可以通过在过滤器中或 .htaccess 文件中添加一些代码来禁用xmlrpc.php 。让我们看看这两种方法。

方法1:通过过滤器禁用xmlrpc.php

这里的一个选项是使用xmlrpc_enabled过滤器禁用xmlrpc.php。将此功能添加到插件并在您的站点上激活它:

add_filter( 'xmlrpc_enabled', '__return_false' );

您可以将其添加到主题的 functions.php 文件中。

方法2:通过服务器配置来实现禁用xmlrpc.php

Apache 服务器通过 .htacess 文件禁用xmlrpc.php

在您的.htaccess文件中,添加以下代码:

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

这样做之前,请确保对旧文件进行备份,以防万一遇到任何问题。

Nginx 服务器通过将下面的代码段添加到 Nginx.config 文件中实现

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

或者

location = /xmlrpc.php {
          deny all;
          access_log off;
          log_not_found off;
}

您何时需要启用xmlrpc.php?

在某些情况下,您确实需要在WordPress网站上启用xmlrpc.php,或者您不应该完全禁用它。

这些是:

  • 您没有运行REST API(不建议使用,但在某些情况下是必需的),但需要在WordPress网站和其他系统之间进行通信。
  • 您无法将WordPress更新到版本4.4或更高版本,因此无权访问REST API。这可能是由于您的托管设置受到限制(在这种情况下,我将更改托管提供商)或主题或插件不兼容(在这种情况下,我将替换或更新这些内容)。
  • 您正在使用无法访问WP REST API但可以访问XML-RPC的外部应用程序(从长远来看,我建议您更新该应用程序或切换到REST兼容的应用程序)。

而已!这些都不是保持XML-RPC规范打开的特别好的理由。

它仍然在WordPress中的唯一原因是为了向后兼容,只有在使用过时的系统时才使用它。对于任何想要使其站点保持最新状态并使用最新技术的人,禁用xmlrpc.php都是路要走。XML-RPC曾经是WordPress的重要组成部分。现在它代表了安全风险🔒-本指南将向您确切介绍如何在您的网站上禁用它disable。点击鸣叫

概要

XML-RPC规范是在WordPress创建之前就开发的,它是WordPress与外部系统和应用程序进行通信的一种手段。它具有固有的安全漏洞,可能使您的站点容易受到攻击。

现在,REST API允许您的站点与其他应用程序通信,您可以安全地禁用xmlrpc.php。如果您按照上述步骤操作,则可以通过禁用它来提高网站的安全性。

上一篇:

在线评论

在线客服
在线客服关闭
WPYOU官方微信

扫码关注官方微信