如何禁用WordPress的XML-RPC

由于安全方面的原因,很长一段时间以来XML-RPC默认都是禁用的。但是在WordPress 3.5及以后的版本中,XML-RPC被设置成了默认启用并且后台没有地方可以关掉这个功能。本文,我们将讲解如何在WordPress中禁用XML-RPC并更深入的讨论为什么要默认开启该功能。

什么是XML-RPC?

百度百科的解释是,XML-RPC的全称是XML Remote Procedure Call,即XML(标准通用标记语言下的一个子集)远程过程调用。它是一套允许运行在不同操作系统、不同环境的程序实现基于Internet过程调用的规范和一系列的实现。这种远程过程调用使用http作为传输协议,XML作为传送信息的编码格式。Xml-Rpc的定义尽可能的保持了简单,但同时能够传送、处理、返回复杂的数据结构。

简言之,这是一套可以让你使用流行的博客客户端(例如,Windows Live Writer)将博文发布到你的WordPress网站上的系统。当你使用WordPress移动app的时候,或者当你想跟IFTTT这样的服务连接的时候,这个功能也是必须的。

如果你想远程访问和发布文章的话,那你就需要开启XML-RPC。

以前,鉴于对安全性的考虑,所以将XML-RPC设置为默认禁用。但是现在情况完全不同了,WordPress的代码质量有了很大的提升,归功于开发团队大量的工作,它在API开发方面不再受到歧视。 与其他核心相比,安全性已经不是什么大问题了。

现在已经没有什么理由再将它默认设置为禁用了,是时候删掉这个选项了。

随着移动设备的使用越来越多,这种变化迫在眉睫。 然而,一些对安全问题持谨慎态度的人可能会说,虽然XML-RPC的安全性并不是一个大问题,但如果发现漏洞,它仍然可以为被攻击的一个点,所以最好还是设置为禁用。

为了满足所有人的需求,虽然关闭XML-RPC的用户操作界面和数据库选项都已经被移除了,但是如果确实有需要的话,你可以使用WordPress提供的过滤器来关闭它。

如何禁用XML-RPC?

只需要将下面的代码粘贴到主题的functions.php文件中即可:

add_filter('xmlrpc_enabled', '__return_false');

或者,你还可以安装一个叫Disable XML-RPC的插件,只需要启用该插件即可,跟上面那行代码的功能是一样的。

如何通过.htaccess文件禁用WordPress XML-RPC?

虽然上述解决方案对于许多人来说已经足够,但对于受到攻击的站点来说,它仍然会占用大量的资源。对于这些情况,你可能想通过.htaccess文件禁止所有来自xmlrpc.php的请求,甚至在请求没有到达WordPress的时候就被拦截。

只需要将下面的代码复制到.htaccess文件中即可。

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

因为本站不使用任何移动app或者远程连接来发布文章,所以我们默认禁用了XML-RPC。你对这个问题有什么见解呢?

为您推荐

发表回复

您的电子邮箱地址不会被公开。

2条评论

    1. 最好不要这么简单粗暴的直接删掉,因为升级Wordpress后还是会恢复的。按照文中的方法,用过滤器屏蔽 + .htaccess 屏蔽的方式最好了。