这几天连着好几个朋友来找我,说自己的网站莫名其妙多了些花花绿绿的广告,点开一看竟然是谷歌广告,但自己从来没注册过AdSense,更没往页面上放过这些代码。这事让人脊背发凉,因为你的网站已经被人动过手脚了。
先别急着慌,这种事儿比你想象中常见得多。据我了解,国内有不少小网站和博客都中过招,尤其是一些用的是开源程序、或者服务器管理比较松散的朋友。这些广告不是谷歌主动放上去的,更不是谷歌大发慈悲给你发钱,而是有人黑进了你的网站,偷偷在代码里塞了广告代码。你辛辛苦苦攒的流量,被人家偷去变现了。
先说下这个问题的严重性。如果你的网站被挂了这些广告,访客一打开页面就会看到不属于你的推广内容,体验一下子差了不少。更要命的是,有些被挂的广告还会带恶意跳转,甚至可能给访客的手机或者电脑植入跟踪脚本。要是遇到较真的访客,举报你网站有木马病毒,搜索引擎的信任度会直线下降,流量掉一半算是轻的。
我之前帮一个做本地服务的朋友排查过,他的企业站被挂了整整一个月,每天的流量从三百多降到了七八十,他自己还一头雾水,以为搜索引擎算法调整了。
那这种广告是怎么挂上去的?无非就是那么几个途径。有些是网站后台的账号密码太简单,被暴力破解了;有些是用的主题或者插件有漏洞,黑客利用漏洞直接上传了恶意代码;还有一些是服务器本身没做好安全配置,甚至开了不必要的端口。常见的存放位置包括网站的公共头部文件、底部的统计代码附近,或者被做成了伪装成官方插件的恶意程序。

那你该做什么?先别忙着删,你得按步骤来。
第一步,马上备份完整的网站文件和数据库。切记是完整的,不要只备份部分。同时把服务器日志下载下来,后面可能用得上。
第二步,仔细查一下网站的源代码。重点看全站调用的公共文件,比如header、footer、function这些。发现有看不懂的、来历不明的script标签,先记录下来。如果能把网站文件下载到本地,用编辑器全局搜索“googleads”或者“googlesyndication”这两个关键词,基本能定位到恶意代码的位置。
第三步,改密码。网站后台的、数据库的、FTP的、服务器面板的,全部换成复杂密码。别嫌麻烦,这一项能封住大部分的后门。
第四步,清理代码。找到恶意代码后,把对应的代码段删掉,然后上传覆盖。如果网站文件太多不好操作,可以找一个干净的备份,直接整站覆盖,再做一次全量扫描确认。
第五步,排查所有插件和主题。把长期不用的、来源不明的、很久没更新的插件全部卸载,主题换回官方默认主题试试。确认没问题后再逐个启用,看是哪个出了问题。
第六步,检查服务器上的隐藏文件。只看网站根目录是不够的,还要查看有没有奇怪的计划任务、定时脚本,这些往往是黑客留下来的“后门”,专门用来重新挂代码的。如果自己不太懂,让懂服务器的人帮忙看下,或者找主机商协助排查。
到了这一步,广告基本能清理干净。但这只是治标,要治本还得做几件事。
以后网站后台的登录地址不要用默认的,改成复杂的路径,登录加上双重验证。给服务器开启系统防火墙,不必要的端口别对外开。定期更新系统、程序、主题和插件,别图省事点不更新,很多漏洞都是老版本一直没补才被人钻了空子。文件权限也设好,读写权限别给得太大。
另外,每天或者每周看一眼网站日志,流量有没有异常,后台有没有陌生的登录记录。哪怕看看搜索引擎收录情况,也能提早发现问题。
有些朋友可能会问,要不要通过谷歌官方渠道投诉?可以这么做,但意义不大。谷歌的广告系统只管投放,对于广告代码所在的网站是否被黑,他们不会帮你清理,最多是告诉你广告投放的位置,然后让你自己处理。与其等他们,不如自己动手来得快。
被挂广告这件事,说大不大说小不小。只要不是数据被人拖走了,网站本身没有被域名劫持,清理干净之后基本能恢复正常运营。这个过程对普通站长来说可能有点折腾,但确实是每个做网站的人都应该具备的基本技能。
吃过一次亏,以后对安全的事就会上心多了,算是一次交学费式的学习吧。