前言
由于某次打开博客看到一对乱七八糟的英文文章,我就知道被盗发了,一查防火墙 一堆/xmlrpc.php 请求,果然,我的密码只认为还还强的(12位英文和数字),但是架不住xmlrpc接口的无限刷爆破,遂封xmlrpc,并修改登录密码上30位英文数字混合!
什么是 xmlrpc.php
要说WordPress的xmlrpc.php,首先要说XML-RPC,XML-RPC是一种远程过程调用协议,用于在客户端和服务器之间进行通信。
xmlrpc.php 是 WordPress 用于实现 XML-RPC 协议的入口点,它允许远程客户端通过 XML-RPC 协议与你的 WordPress 网站进行通信,可以使用一些XML-RPC客户端对 WordPress 操作,如发布文章、编辑内容、管理评论等等。
为什么可能要屏蔽 xmlrpc.php?
尽管 xmlrpc.php 提供了一些方便的功能,但它也可能成为潜在的安全风险。一些恶意方可能尝试利用 XML-RPC 漏洞进行攻击,例如进行暴力破解登录、Pingbacks进行DDoS攻击等。
如果你只在 WordPress 的后台写文章,完全可以关闭 XML-RPC 功能,以增强 WordPress 网站的安全性,你可以通过以下方法屏蔽 xmlrpc.php:
封xmlrpc
方法1、通过主题目录下的functions.php禁用
该方法比较简单,直接在wordpress后台或者远程连接修改当地使用的wordpress主题目录下的functions.php文件,在最后?>的前面加上一行:
add_filter('xmlrpc_enabled', '__return_false');
保存即可。
方法2、禁止xmlrpc.php访问
2.1 Nginx
修改对应的虚拟主机配置文件,在里面添加上:
location = /xmlrpc.php {
return 444;
access_log off;
log_not_found off;
}
最后重启Nginx使其生效。
2.2 Apache
修改网站目录下面的 .htaccess 文件,添加如下内容:
Order Deny,Allow
Deny from all