最近运行的三个WordPress站点都挂了,无一列外地都有“建立数据库连接时出错”的问题!
但在检查之后发现,三台主机的出错状况却不太一样。
问题检查
一、挂马
有两台主机是运行在腾讯云上面的,正是其中一台发消息提醒我网站被注入了木马。利用腾讯云的安全管理将疑似带毒的文件隔离后,我尝试着打开网址。
浏览器提示有安全问题,如果继续进入的话,页面跳转到其他网址,然后出现加载画面。这跟我所预想的可能会出现500错误不太一致,毕竟几个核心文件被隔离后,系统肯定是会报错的。
二、修改配置文件
打开配置文件LocalSettings.php文件,所有我自定义的配置全部消失了,而且数据库的设置全部被篡改过,使用的是其他服务器上的数据库。
将之前备份过的配置文件上传并覆盖,刷新主页后就出现了“建立数据库连接时出错”的提示。
用phpmyadmin登录数据库,庆幸的是数据库内容还在。
就在我检查的过程中,腾讯云又给我发来消息说有文件疑似被植入木马。
好吧,也懒得检查了,重新安装一遍WordPress吧,反正也没多少内容。
三、修改或删除数据表
原本以为另外的站点也是同样问题,结果发现另一台的配置文件没有修改,但是wp_options数据表损坏,所以显示无法连接。尝试修复数据表,重新连接OK。
安全预防
升级系统、插件和主题
虽然听起来是废话,但是我们难免还是会疏忽,毕竟WordPress以及它的插件和主题升级太快了,即便是你使用了自动升级插件也难免会有疏忽——就拿Companion Auto Update插件来说,它的默认选项是不进行大版本的升级的,这样做的原因是避免大版本最初可能带来的不稳定。所以没事还是上自己的站点上溜达一下,看看是不是有新的版本需要更新。
安装安全插件
WordPress的高质量安全插件数量并不少,很多人(包括我自己)拒绝安装的一个主要原因就是可能会拖慢网站的运行速度,而当你被入侵连网站都打不开之后,你就会明白相对于网站的速度,不能打开是更要命的结果。
最终我选择了Wordfence Security这款安装量极大的安全插件,暂时没有中文语言,在没搞明白它的复杂功能之前,免费版是一个很好的选择。
修改宝塔默认配置
宝塔面板虽然方便,但功能越复杂使用人数越多也就意味着漏洞的可能性也就越大。