近期虚拟主机莫名其妙被攻击,持续每秒几十次访问搞了几天,后台错误日志又发现wordpress程序似乎有代码进入了死循环,最后不出预料的服务器被主机提供商暂停了,原因自然是大量占用服务器资源.
外部攻击除了屏蔽ip,也没有太好的方法,不过内部问题倒是要想办法做做,出了这么大问题,也怕是有人发现了wordpress漏洞攻击了,总担心站点文件被修改,怕上传了后门,干脆清空了主机,重新安装了wordpress.真是逼死强迫症…
然后就想,以后再出事怎么搞,总不能出问题就重装wordpress,于是考虑做一个文件保护系统,基本原理就是记录文件修改时间和文件md5值来检测服务器文件有没有被修改.
项目详细实现:
1.保护系统初始化时,开始检测所有已存在文件的修改时间和md5值,把文件名-修改时间-md5存到数据库.
2.每次打开网站,指定一个周期,再次检测所有文件,对比数据库,列出被修改,删除,新增的文件.
3.部分缓存文件经常变动,需要单独列出来.
4.检测结果发现异常后,标识出异常文件,确认无威胁或以解决问题后,可以重新初始化系统.
更进一步开发:
5.计划任务,让该系统后台间隔一定时间后自动执行,并把检测结果发送到指定邮箱.
6.每次检测时,备份数据库文件,并发送到邮箱.
7.备份重要文件,这个有点不靠谱,毕竟副本存在服务器上也没什么安全性,发到邮箱每次消耗的流量更惨不忍睹,不过要是重要文件打包压缩存在服务器,给邮箱发下载链接,定期主动下载倒还可以.