前天晚上,本博客在更新一篇文章之后不久就中病毒了。
中毒症状:
输入本博客域名后,会自动跳转到奇怪的网站,而且不断地跳转到新的网站。
跳转到的第一个网站会显示“robot check”之类,如果点击“Accept”,就会跳转到其他网站,不断跳转。这些网站没有什么实质性内容,反而导致浏览器卡顿。最后发现在我的电脑中自动安装了Opera浏览器(还是Mac系统中,看来让Mac中毒也不是那么难)。奇怪的是,安装了Opera之后,似乎也没有见到其他软件被安装,杀毒软件也没有查出来。禁用插件也没作用,所以不是插件的问题。
然后我借用Google的安全工具检查网站,居然显示没有问题。看来这个病毒(或者叫木马更为合适)还挺狡猾。
然后我给主机商提交了工单,主机商回复说确实看到网站会自动跳转,让我更换主题试一下,如果再出问题需要收费杀毒。
没想到还要收费……
那么我先试试更换主题吧。
更换主题之后,网站恢复正常。于是我便认为,是刚才的主题文件有问题。
但正当我高兴之余,几分钟之后,网站又出现了自动跳转。看来没那么简单。
因为主机商要收费,于是我打算自己修复网站。
先修改一下默认页面,跳转到index.html而不是index.php,以免访问的人中病毒,那就太坑了。
然后备份数据库!
因为已经确定不是插件的问题,所以就从主题入手。
将themes文件夹修改为themes.old,重新建立themes文件夹,放入当前使用的主题,跳转依然出现。
再修改主题为默认主题twentytwelve,放入之后发现跳转停止。此时不能确定是木马没起作用,还是像之前一样过几分钟感染之后再起作用。果然,过了一会又出问题了。
看来不仅仅是主题文件夹出问题那么简单。但是,花时间一个一个找,真的很不划算。于是我转换思路。
思路和探索过程:
一、新装wordpress,调用旧数据库。
首先,将wwwroot文件夹整个重命名,新建wwwroot,重新搭建网站,使用旧数据库。网站访问正常,一开始没问题,但过一会就出错。看来是数据库出问题了。
二、新装wordpress,新建数据库看会不会跳转。
然后,恢复数据库,重新再搭建网站,使用新表头,网站正常,再无问题。
看来是旧数据库某个地方出问题了。
ps:由于网站使用了SSL,但新搭建的wordpress是没开通SSL,而wp_options中的网站链接都是https的,所以内容显示错乱,后台登陆不上,问题多多。
这些东西搞得我头大,因为一直不想放弃各种插件、主题设置等数据库内容,但东西太多了,包括访问统计等等,所以想着各种修复数据库。
然后折腾啊折腾,头昏脑胀。
休息了一下之后,转换了新思路:
但,先关掉SSL再说。
三、关掉SSL,新装wordpress,新建数据库后,再修改关键的几个旧数据库到新数据库中(即删掉旧数据表,修改旧数据表的表名为新数据表表名),其余表保持不变。
这下清爽了,访问正常,数据正常,再无跳转。
然后将wp-content下的plugins,uploads文件夹剪切过来,网站内容、附件调用都正常了。
但是,还有很多图片和附件是https://链接。
纠结了一下是继续用SSL,还是保持现状。最后决定保持现状算了。
虽然SSL是所谓更安全的,但我的博客没有什么敏感的重要的东西,暂时就这样用着,以后需要再开。因为我一直觉得SSL用起来太复杂,还要做SSL跳转,维护起来也麻烦,累人。
当然,这样维护之后,出现的问题就是,很多设置都得重新改了。不过无所谓,慢慢来。
这次维护,我总结经验如下:
每三天备份一次数据库和网站,出问题后直接还原,省时省力。
另外,少装一些奇怪的主题、插件,少用一些奇怪的代码,它们也许好用,但也许有毒。
谨记之。