共计 1651 个字符,预计需要花费 5 分钟才能阅读完成。
XML-RPC 协议是 SOAP 协议的前身。尽管 SOAP 协议较新并且支持更多功能,但是 XML-RPC 仍在使用,并且比 SOAP 更受青睐,这恰恰是因为它简单易用。
许多 Web 应用程序都使用 XML-RPC,例如 WordPress、Drupal 等。
在 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 用于远程发布文章和博客互动通信的桥梁,也是黑客攻击的重要对象,所以,出于安全性考虑,你应该根据自己的实际需求选择是否禁用该功能。