作为 WordPress 用户,你应该在“讨论”设置里看到过“Pingback 和 Trackback”,这个功能可以通知文章里链接到的站点,也可以在被其他站点链接时收到通知。另外,有些用户习惯在手机上使用 WordPress APP 来管理文章、媒体和评论。
上面说到的两个功能都需要用到 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 文件。
在文件的末尾添加以下代码即可禁用 XML-RPC:
add_filter('xmlrpc_enabled', '__return_false');
不过这样操作有个缺点,就是每次主题更新后数据都会丢失,需要重新编辑。对此可参考:用插件给主题添加代码,避免升级、更换主题导致自定义代码丢失 。
三、使用专门的插件禁用 XML-RPC
对于无法操作服务器,又不想编辑主题的用户,可以选择最简单粗暴的方式——装专用插件。
只需简单搜索就能找到大量相同功能的插件,选择安装量大、评价高的安装即可。
假设已经使用 Wordfence 这类全家桶型的安全类插件,也可以在插件的设置中禁用 XML-RPC,就不需要单独安装专用插件了。
如果你的站点饱受垃圾评论和暴力破解的折磨,禁用 XML-RPC 后立即就会清净很多。耕读君曾写过应对之法,欢迎参考: