那天早上我照常打开电脑,想登录自己的网站后台更新一篇内容,结果火狐浏览器弹出一个刺眼的红色警告页面,写着“此网站已被报告为恶意软件”。我心里咯噔一下,第一反应是搞错了,又刷新了一遍,还是同样结果。换Chrome访问,倒是能打开,但地址栏下面多了一行灰底提示“该网站包含有害内容”。再上谷歌搜索自己网站名字,搜索结果里直接标红显示“此网站可能已遭到黑客攻击”。那一刻,脑袋是懵的。
静下心来排查,才发现问题出在哪里。我的网站用的是老一套的PHP源码加MySQL数据库,后台有一个文件上传功能,平时根本用不上,但一直没关。黑客应该就是利用了那个上传漏洞,把一个伪装成图片格式的PHP脚本传了上去,拿到执行权限之后,在网站根目录生成了一堆乱码命名的PHP文件,同时篡改了首页和几个关键页面的代码,在里面插入了一段隐藏的iframe,指向一个自动下载木马的域名。火狐和谷歌的安全爬虫都是有自动检测机制的,它们定期抓取网站页面做分析,一旦发现页面源码里嵌入了外部恶意链接的痕迹,就会把整个域名拉进黑名单,然后展示给所有用户,提醒他们不要访问。
这个过程其实很快。你根本感觉不到网站有什么异样,因为前台页面肉眼看到的内容还是正常的,黑客很狡猾,把恶意代码藏在页面最底部,用CSS设置了隐藏属性,普通访客看不到,但搜索引擎的爬虫能读到源代码。我的网站数据流量不大,没注意到异常,直到浏览器主动报毒才发现。
遇到这种情况,千万别慌,也别急着申诉,因为申诉前必须先把问题解决干净,否则谷歌和火狐的安全团队复查时发现恶意代码还在,申诉就会被驳回,甚至拉长审核周期。我这次一共折腾了将近四天,整理一下流程,给遇到类似情况的朋友做个参考。
第一步,断网隔离。立刻把网站服务器从外网断开,或者至少把网站目录设置为只读,防止黑客继续修改文件。如果是云服务器,可以在后台安全组里临时屏蔽所有入站流量,只保留自己电脑的IP访问权限,方便排查。我用的宝塔面板,直接开启了防火墙的“仅允许白名单IP访问”模式,简单粗暴,但有效。

第二步,全盘扫描清理。别只盯着首页文件,黑客通常会在多个目录里埋后门。我下载了网站完整源码到本地,用安全软件扫描,找出了十三个可疑文件,全部是最近一周内被修改过的。逐一打开看代码,其中几个是典型的Webshell后门,能执行任意命令,还有几个是恶意跳转脚本。全部删除,同时检查了服务器上的计划任务,发现有一条恶意定时任务,每隔五分钟就尝试下载一个远程脚本,难怪删了又会出现,这条任务也必须删掉。
第三步,修补漏洞。文件清理干净只是治标,不堵住入口等于白干。我检查了网站日志,发现黑客是通过一个非常老的编辑器插件上传文件进来的,那个插件版本停留在五年前,官方早就停止维护了。我把这个插件彻底禁用并删除,然后修改了后台登录地址,开启了二次验证,把数据库账号密码也全部换掉,密码强度拉满。服务器端的安全补丁也更新了一遍,操作系统和PHP版本都没有漏洞残留。
第四步,向谷歌提交审查。登录Google Search Console,在“安全问题”板块里能看到谷歌检测到的具体恶意内容列表,包括被篡改的URL和检测到的恶意代码类型。等所有问题都处理完毕后,勾选“我已修复”选项,提交复审申请。谷歌的人工审核响应速度看运气,快的话一两天,慢的话要一周,期间可以密切关注后台状态。火狐的审核入口不太显眼,在Mozilla的官方安全申诉页面,直接提交网站域名和情况说明,处理速度比谷歌快一些,我第一次提交后大约二十个小时就收到了解封通知。
那几天我几乎没怎么睡好,每天睁眼第一件事就是刷新浏览器看警告有没有消失。但这次经历也让我长了记性,网站安全真不是小事,哪怕你只是个小站点,只要存在漏洞,黑客的扫描工具就能发现你,然后自动攻击,把网站变成传播病毒的跳板。现在我把自动更新全开了,重要文件每天异地备份,后台登录强制使用密钥认证,还装了一款实时监控文件变动的安全插件,不夸张地说,防火墙日志里每天都有几十次来自世界各地的扫描尝试,不设防的话迟早出事。
如果你也遇到类似情况,记住最关键的一点:先解决问题,再想荣誉。浏览器报毒不是对你网站的否定,而是它尽到了保护用户的责任。用心修复,及时申诉,网站很快就能恢复正常。这个过程中,耐心比什么都重要。