网站设计案例

数据库数据神秘丢失,日志分析找到“元凶”

 公司工作人员在检查公司网站的时候,发现常见问题栏目的数据没有了,又经过仔细检查发现新闻也好像少了几篇,通过技术分析得知,应该是数据库里面的记录丢失,因为最近修改的网页文件并没有变化。然而,好好的,数据库里的记录为什么会不见了呢?

一种可能是竞争对手进入了后台,给删掉了,不过这种可能性比较小,因为口令已经改过,系统没有漏洞,并且如果故意破坏,应该会删除更多的东西,此种可能排除。

还有一种可能是服务器有问题,丢失文件,然而也不太可能,因为丢失的是数据库里的数据,如果是故障,不可能丢失的如此完整。

百思不得其解的时候,我们决定采取笨办法,排除法,我们的服务器拥有一个月文件快照功能,也就是最近一个月每天都会有文件的备份。我们把最早的一个月前的数据文件恢复,发现数据都还在,于是,我们继续回复,直到11月25号的文件恢复之后,数据已经丢失了,那说明问题就出在25号这一天。我们如何知道25号这天究竟发生了怎样离奇的事情呢?

这就用到我们的访问日志了,我们调取了25号的访问日志,通过搜索过滤出对于bzjb.com的访问,因为后台有批量删除和单个删除功能,批量删除是POST方式,单个删除是GET方式,在庞大的日志文件中锁定问题记录也是一门学问,先搜索“POST www.bzjb.com",一共两条,能看出来是的登录信息。另外的都是GET方式访问的,这样还有一个窍门,搜索删除命令的参数“deleteid”,结果终于发现了异常记录,我们发现标记有

ia_archiver (+http://www.alexa.com/site/help/webmasters; crawler@alexa.com)

的记录接连向服务器发出了删除记录的请求。通过查询得知这是alexa的爬虫,应该是无意中收集到了我们的移动管理页面,但还有一点困扰着我们,我们的移动后台开通不久,并且经过登录验证的,如果没有登录,会跳转到登录页面,那些记录是怎么被删除的呢?

经过检查代码发现,在移动管理后台中,的确是有登录检查机制,不过是在一段执行代码之后的,也就是虽然浏览者未登录无法浏览网站,但代码却已经执行了。到此真相大白。接下来就是修补漏洞,将验证代码前移就好了,好在开通移动后台的客户不多,alexa爬虫事件也有一定的偶然性,并没有为客户带来不便。之后我们加入了robots协议,禁止爬虫访问管理页面。

这次破案经历颇为曲折,不过好在我们的文件快照和日志功能起了关键作用。我们仍然会尽最大的努力,做好滨州网站建设第一家。

滨州精博网络。

网站首页 新闻公告