XML-RPC是一种远程远程过程调用协议。XML-RPC允许运行在不同操作系统上和不同环境中的两个应用程序通过Web(通过HTTP)相互通信。描述实现方法的信息以XML编码。
XML-RPC协议是SOAP协议的前身。尽管SOAP协议较新并且支持更多功能,但是XML-RPC仍在使用,并且比SOAP更受青睐,这恰恰是因为它简单易用。
许多Web应用程序都使用XML-RPC,例如WordPress、Drupal等。
WordPress中XML-RPC的用途是什么?
在WordPress,XML-RPC 用于为pingback的功能,用于远程发布的文章和需要与外部应用程序的特定通信的其它功能。
通过Pingback功能,可以通知另一个博客的作者您已在其站点上放置了指向其文章的链接(反之亦然)。
可将本地安装在计算机上的Weblog程序用于文章的远程发布。即使没有互联网连接,也可以创建文章。激活互联网连接后,应用程序会将已经创建的文章发送到WordPress网站。
每个WordPress安装都包含位于系统根目录中的xmlrpc.php文件。
通过此文件使用XML-RPC功能。通过xmlrpc.php,WordPress可以接收和发送XML-RPC信号并与其他外部应用程序进行通信。
为什么要在WordPress中禁用XML-RPC
实际上,xmlrpc.php
会带来安全风险。它为您的站点创建了一个附加访问点,这可能使其容易受到外部攻击。每次对XML-RPC进行身份验证时,都需要提供用户名和密码,相比安全性来说,这个功能并不那么重要。
例如,为了防止暴力攻击,您可以限制在WordPress网站上的登录尝试。但是,启用XML-RPC后,该限制将不存在。尝试登录没有上限,这意味着确定的网络犯罪分子获得访问权限只是时间问题。
通过禁用XML-RPC,您可以关闭黑客的潜在进入区域。当然,没有XML-RPC,就不可能进行远程访问。您需要直接登录WordPress以进行发布和更新。因此,如果移动应用程序和远程软件是您进行网站更新的方法,则不能关闭该功能。
如何在WordPress中禁用XML-RPC
要在WordPress中禁用XML-RPC有很多种方法,下面介绍几种比较常用的方法。
通过函数禁用 XML-RPC
我们可以通过函数的方式,禁用掉相应的功能,具体可以参考之前的文章:
- 如何关闭WordPress 3.5 的 XML-RPC 功能
- WordPress 关闭 XML-RPC 的 pingback 端口
在Apache环境下使用.htaccess禁用XML-RPC
如果你的服务器或主机空间采用的是Apache服务,可以通过.htaccess禁用WordPress中的xmlrpc.php功能,您需要转到WordPress网站的根文件夹,找到并打开.htaccess文件并添加以下代码:
# Block WordPress xmlrpc.php requests
order deny,allow
deny from all
allow from 123.123.123.123
如果您要允许访问xmlrpc.php
的特定IP地址,则可以在上面的代码段中替换123.123.123.123。否则,您可以完全删除此行。
注意:如果您的网站上有.htaccess文件,但您看不到它,请访问设置并单击“显示隐藏的文件”。
在 Nginx 环境下禁用XML-RPC
你可以在对应网站的配置文件中,添加下面的代码禁用 XML-RPC:
location ~* /xmlrpc.php$ {
allow 123.123.123.123;
deny all;
}
如果您要允许访问xmlrpc.php
的特定IP地址,则可以在上面的代码段中替换123.123.123.123。否则,您可以完全删除此行。
现在,除了您选择的特定用户外,所有人都将无法远程使用xmlrpc.php
。
小结
XML-RPC 是WordPress用于远程发布文章和博客互动通信的桥梁,也是黑客攻击的重要对象,所以,出于安全性考虑,你应该根据自己的实际需求选择是否禁用该功能。