coding……
但行好事 莫问前程

wordpress被攻击之后的一些总结

今天早晨在在公司打开电脑,吃着早饭,翻着自己之前写的一篇文章,回到主页时发现,出现了很多英文的发布(乱七八糟的内容),第一反应就是被攻击了,赶紧到仪表盘去看一下,发现这时候站点所有的url都已经无法访问了。

我的这个个人站点是部署在一个虚拟主机上的,所以我赶紧去运营商的控制台检查一下。到了我也很茫然,因为我对php一无所知。好在控制台看到了phpMyAdmin,之前都没注意到这个东西的存在==。通过phpMyAdmin连上了站点的后台数据库,发现只是多了一些数据,原来发布的一些文章还在,当时舒了一口气(毕竟接近一年的功夫都在里面)。随后第一时间将ftp密码,数据库密码等相关密码更改了。然后了解了一些wordpress的简单机制,搞清楚服务器上个目录的作用之后,做恢复工作。之前都是使用运营商给提供的工具安装的,对wordpress的结构一无所知,也给这次的恢复工作提升了一些难度==。

这是一个典型的wordpress站点的目录结构,其中最重要的就是wwwroot目录下的wp-config.php文件,这是wordpress配置的地方(数据库连接配置等),这是一个非常重要的文件,之后恢复的时候要用到。

其次就是wp-content目录, 这是wordpress存储主题,插件,上传文件的地方,之后恢复时也要用到,建议保留wp-content 目录下的themes、uploads、plugins文件夹,之后将这些文件夹上传到新安装的wordpress。这里uploads要保留,不然之前博客中引用的一些文件就找不到了,其他的想插件、主题可以重新在wordpress仪表盘安装。同时注意检查一下uploads里面是不是有.php文件,一般这个文件夹下是不会出现.php文件的,如果有,请注意删除。

之后就是恢复工作,我是直接通过运营商提供的工具,将主机清空,然后重新安装的,这里也可以手动下载wordpress包,通过ftp将新的wordpress文件上传的服务器(一定要将原来的主机清空,不然有可能一些恶意代码仍会影响你站点的安全性)。安装结束之后,就是把上述的wp-config.php和wp-content文件夹下的文件替换掉。

之后访问站点,就可以正常访问了,总结下来,这次出现问题,还是自己的安全意识不够,没有主动去做一些防护工作。之前其实站点一直受垃圾评论困扰,我一直忽略了,给这次攻击埋下了祸根。然后我了解了一些wordpress的安全策略,给站点做了一些防护,主要如下:

  • 安装自动更新插件Companion Auto Update,实现无人值守的WordPress核心,插件和主题自动更新,避免因为一些插件漏洞导致站点被攻击。
  • 自动备份,这次没造成特别大的损失是数据库还在,能恢复过来,也让我意识到数据备份的重要性。 安装自动备份插件 UpdraftPlus,实现wordpress文件和数据库文件自动备份。教程参考:WordPress备份还原插件UpdraftPlus
  • 过滤垃圾评论,很多垃圾评论的目的并非打广告这么简单,而是把评论内容写得像广告,实际嵌入了恶意代码进行XSS攻击,这样的评论如果流入正常用户的浏览器,就有可能带来危害,如果是权限较高的用户,网站就可能被渗透。 可以安装Akismet插件,实现垃圾评论过滤,让你不再忍受垃圾评论困扰。教程参考:最好用的wordpress防垃圾留言插件Akismet
  • 降低插件使用风险,非官方的插件危险系数高,不可随便下载安装,先确认插件源可信。
  • 用安全性更高的管理员帐号,不要使用admin账户,密码类似于password、123456之类的弱密码。
  • 替换默认登录入口,wordpress默认登录地址为 /wp-admin 和 /wp-login.php,网上大量黑客程序以它们为渗透目标,所以安全的做法是将这两个地址给隐藏掉。了解到有一个插件WPS Hide Login,但是不知道是我使用姿势不对,还是跟我的版本不兼容,用了之后,发现仪表盘无法正常访问了。升级了主题插件之后,发现正常了。
  • 强制用户使用https协议,我这个因为服务商对于虚拟主机不支持SSL,所以没法配置,如果可以的话,还是可以启用一下,很简单。
  • 避免使用默认数据库前缀,WordPress安装时,默认数据库表前缀是wp_,这就为sql注入提供了便捷。做了个实验,如果在已经是wp_打头的前提下,通过改表名 + wp-config.php文件的方式,会导致仪表盘无法访问,原因不明,懂php的同学可以研究一下。
  • 关闭文件编辑,WordPress默认允许管理员帐号修改主题或插件源文件,一旦管理员帐号被渗透,理论上黑客可以通过这个功能修改这些文件,执行任何他想执行的代码,比如注入木马,留后门。可以在wp-config.php中加入如下一行代码关闭:
define('DISALLOW_FILE_EDIT', true);
  • 关闭php文件直接访问权限,一旦黑客发现某个php源文件有漏洞,就可以通过直接访问之反复尝试渗透,尤其是上传文件夹这样的敏感位置(/uploads)。在.htaccess文件里添加针对敏感目录的规则,禁止直接访问.php文件:
Order Allow, Deny
Deny from all
  • 关闭XML-RPC,XML-RPC是WordPress向外暴露的调用,Pingback和Trackback功能依赖这组调用,但会被黑客程序拿来来做蛮力攻击或者DDos。安装Disable XML-RPC插件,可彻底关闭XML-RPC。普通网站Pingback和Trackback功能意义不大,所以关掉XML-RPC也没有关系,除非你确定它需要打开。

以上就是在站点被攻击之后的一些总结,希望可以帮助受到同样困扰的同学。想安安静静做个站长其实也没那么容易,总有一些人出于恶意或其它原因来攻击你的站点。像我之前买的一个辣鸡vps,第二天就被挖矿的哥哥们给黑了。总结下来就是,现在这个环境下,安全真的很重要,平时工作写代码时,还是要好好注意。

参考链接

1. 给小白写的wordpress被黑之后的恢复教程

2. WordPress终极安全指南

赞(3) 打赏
Zhuoli's Blog » wordpress被攻击之后的一些总结
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

zhuoli's blog

联系我关于我

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏