WordPress 禁用 XML-RPC 的3种方法

作为 WordPress 用户,你应该在“讨论”设置里看到过“Pingback 和 Trackback”,这个功能可以通知文章里链接到的站点,也可以在被其他站点链接时收到通知。另外,有些用户习惯在手机上使用 WordPress APP 来管理文章、媒体和评论。

上面说到的两个功能都需要用到 WordPress 的 XML-RPC 组件。本意上是为了方便,但是这项功能已经被人滥用来暴力破解和发布垃圾评论,因此如果不需要的话建议禁用。

WordPress XML-RPC

测试 XML-RPC 是否已经禁用

在浏览器中访问以下 URL,替换 www.thewindows12.com 为你的域名:

https://www.thewindows12.com/xmlrpc.php

如果 XML-RPC 可访问,会显示以下消息:

XML-RPC server accepts POST requests only.

目前有3种方法可以实现禁用。

一、在服务器层面上禁止访问 xmlrpc.php

假设你使用的不是虚拟主机,能够登录服务器进行操作,那么建议在服务器层面禁止访问 xmlrpc.php ,因为这样性能是最好的。

以 NGINX 为例:

1. 打开你的 Nginx 配置文件进行编辑。

2. 在 server 块中添加以下代码:

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

3. 保存配置文件并重新加载 Nginx 配置以使更改生效:

sudo nginx -s reload

二、通过主题 functions.php 禁用 XML-RPC

如果你的站点没有禁用主题文件编辑功能,那么可以直接在后台打开主题文件编辑器编辑 functions.php 文件。

编辑 WordPress 的 functions.php

在文件的末尾添加以下代码即可禁用 XML-RPC:

add_filter('xmlrpc_enabled', '__return_false');

不过这样操作有个缺点,就是每次主题更新后数据都会丢失,需要重新编辑。对此可参考:用插件给主题添加代码,避免升级、更换主题导致自定义代码丢失

三、使用专门的插件禁用 XML-RPC

对于无法操作服务器,又不想编辑主题的用户,可以选择最简单粗暴的方式——装专用插件。

只需简单搜索就能找到大量相同功能的插件,选择安装量大、评价高的安装即可。

禁用 XML-RPC 的插件

假设已经使用 Wordfence 这类全家桶型的安全类插件,也可以在插件的设置中禁用 XML-RPC,就不需要单独安装专用插件了。

如果你的站点饱受垃圾评论和暴力破解的折磨,禁用 XML-RPC 后立即就会清净很多。耕读君曾写过应对之法,欢迎参考:

耕读君
耕读君

一个筋斗十万八千里,说明上云好啊

文章: 191

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注