默认情况下,XML-RPC服务被禁用最长时间主要是出于安全原因。在WordPress 3.5中,这将即将发生变化。默认情况下将启用XML-RPC,并且从WordPress仪表板关闭它的功能将消失。在本文中,我们将向您展示如何在WordPress禁用XML-RPC并进一步讨论默认启用它的决定。

什么是XML-RPC?

根据维基百科,XML-RPC是一个远程过程调用,它使用XML将其调用和HTTP编码为传输机制。简而言之,它是一个允许您使用Windows Live Writer等流行的博客客户端在WordPress博客上发布的系统。如果您使用的是WordPress移动应用程序,也需要它。如果要与IFTTT等服务建立连接,也需要它。

如果要远程访问和发布到博客,则需要启用XML-RPC。

过去,XML-RPC存在安全问题,因此默认情况下已禁用。在他对trac ticket#21509的评论中,@ nacin是WordPress的核心贡献者之一说:

自从我们为XML-RPC引入默认值以来,有点变化了。他们的代码已经改进,并且在API开发方面不再被认为是二等公民,这得益于庞大的贡献者团队的工作。安全性并不比核心的其他部分更重要。

默认情况下不再有令人信服的理由禁用它。是时候我们应该完全删除这个选项。

随着移动设备的使用越来越多,这种变化迫在眉睫。然而,一些安全谨慎的人可能会说,虽然XML-RPC的安全性并不是一个大问题,但如果发现漏洞,它仍然可以为攻击提供额外的表面。因此,保持禁用将更有意义。

为了让每个人都满意,虽然已经删除了用户界面选项和关闭XML-RPC的数据库选项,但是如果需要,可以使用一个过滤器将其关闭。

如何禁用XML-WordPress中的RPC 3.5

您所要做的就是将以下代码粘贴到特定于站点的插件中:

add_filter("xmlrpc_enabled", "__return_false");

或者,您可以只安装名为Disable XML-RPC的插件。你所要做的就是激活它。它与上面的代码完全相同。

如何使用.htaccess

禁用WordPress XML-RPC虽然上述解决方案对于许多人来说已经足够,但对于站点来说仍然是资源密集型的正在受到攻击。

在这些情况下,您可能希望在将请求传递到WordPress之前禁用.htaccess文件中的所有xmlrpc.php请求。

只需将以下代码粘贴到.htaccess文件中:

# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
</Files>