Wordfence是一款由Feedjit开发并运营的WordPress应用防火墙,主要用于监控入站流量、检测并防御针对WordPress的网络攻击。功能涵盖从扫描WordPress主要文件是否遭到更改、是否存在恶意插件(后门)、暴力登录、弱密码攻击,到过滤垃圾留言、分析Google爬虫行为等等非常广泛。
我的Blog安装这个插件已经一年多了,总体状况还算满意。对性能几乎没有(可以主观感受到的)影响,而且通过后台观察统计数据也的确防范了一些攻击(然而没有防御先前的API提权漏洞攻击)。
前些天在整理数据库备份的时候偶然发现,WordPress的数据库这一年以来增大了几乎一倍,而目前托管在我这的几个网站几乎都处于停滞状态,文章和留言几乎都没有增加。
打开phpMyAdmin查看WorPress所在的数据库才发现,原来数据库体积的大头,都在Wordfence这里。
在wfBlocks表中,甚至还找到了2016年2月份的Block记录,说明这些数据从未被清理过(我安装Wordfence就是在2016年2月)。真不知道Wordfence为什么要将记录保留这么久。要不是我这几个网站的访问数比较少,数据库非爆了不可。
如何减轻Wordfence对数据库的负担呢?官方给出的解答是关闭Live Traffic View(实时流量查看)功能。
这个功能允许管理员查看实时流量状况,官方文档的说明是“实时流量查看功能能够完美地工作在绝大多数具有充足资源的服务器上。……(略)但如果你使用资源有限的廉价托管服务,请考虑关闭实时流量查看以减轻服务器负载”。刚开始因为默认开启,所以我就一直没去管它,直到我发现它占用了很多数据库空间而我却并不需要这个功能(尽管该功能的确如官方所说,并未对网站性能造成任何负面影响)。
在关闭该功能之后,可以按照下面步骤删除数据库中的Log:
- 备份Wordfence配置和API Key。
点Export Wordfence Settings(导出Wordfence设置)按钮,获得备份Token(妥善保管不要弄丢,否则备份找不回来)。 - 开启“停用时删除全部数据”选项。保存设置。
- 前往插件管理界面,停用Wordfence后重新启用。
- 在Wordfence设置页面输入备份Token,导入设置备份,重新设置API Key。
Wordfence要是能够定期自动清理数据库就好了。