
做网站时间长了,多少都会碰到一次:好好的站点打开看着正常,右键一看源码,里面藏着一大堆陌生的外链和恶意代码;更严重的直接跳转到非法站点,或者被搜索引擎标上“风险网站”的提示。不少人第一反应就是赶紧删掉可见的恶意代码,结果没过两天又被改回去了,越折腾越严重。
源码被插入非法信息,本质就是站点被入侵了。只删表面代码没用,黑客早就留好了后门,必须按流程一步步清干净、堵上漏洞,才能真正解决问题。
第一步:先止损,别着急删东西
发现被篡改后,第一件事不是清理代码,而是先控制住局面,防止情况继续恶化,同时留好证据。
先临时把站点切到维护模式或者暂停解析,别让更多用户访问到非法内容,也避免搜索引擎继续抓取异常页面。尤其是企业官网,非法内容挂得越久,对品牌和收录的影响越大。
紧接着做一次全站备份,包括源码文件、数据库、服务器访问日志。别嫌麻烦,后续排查入侵入口、定位问题全靠这些记录。万一清理过程中误删了正常文件,也能及时恢复。很多人上来就直接删文件,最后后门没清干净,连怎么被入侵的都查不出来。
然后立刻修改所有相关密码,服务器远程登录、网站后台、数据库、FTP账号全部换成高强度的新密码,并且互相不要重复。很多入侵都是靠弱密码撞库进来的,不改密码的话,这边刚清完,那边黑客又进来了。
第二步:全面清理,表面和后门都要清干净
止损之后,再系统性地清理恶意内容,分文件、数据库、后门三个层面来,漏掉任何一个都会反复出问题。
先清可见的源码篡改。按照文件修改时间排序,找出近期被异常修改过的页面模板、JS文件、首页入口文件,对照干净的备份逐行核对,删掉插入的非法链接、隐藏iframe、恶意跳转脚本。如果有干净的历史备份,直接用备份覆盖核心文件,比手动清理更稳妥,也不容易漏。
很多人容易忽略数据库。不少黑客不会直接改源码文件,而是通过SQL注入把非法代码写进数据库的文章表、配置表里,页面加载时动态调用出来。这种情况你改源码文件永远清不干净,必须登录数据库,搜索非法关键词和陌生域名,把注入的内容全部删掉。
最关键的一步是查杀后门。只清表面代码没用,黑客通常会在网站目录里藏一个或多个webshell后门,随时可以重新篡改页面。重点检查上传目录、缓存目录、系统临时目录,这些地方最容易藏后门脚本。可以用专业的webshell查杀工具全盘扫描,也可以对照文件列表,删掉所有来路不明的脚本文件。拿不准的可疑文件,先隔离再核实,不要直接保留。
第三步:找到入侵入口,把漏洞堵上
清理完只是治标,找到怎么进来的、把漏洞补上,才能治本。不然过不了多久还会被二次入侵。
常见的入侵入口就那么几个,挨个排查就行。首先看系统和程序版本,是不是用了老旧的CMS、插件或者主题,有没有已知的公开漏洞。很多人建站之后就再也不更新,几年前的漏洞一直留着,不被黑才奇怪。该升级的升级,该打补丁的打补丁,没用的插件和模板直接删掉。
然后查目录权限配置。上传目录如果给了执行权限,黑客上传个图片木马就能直接运行,这是最常见的入侵路径之一。把上传目录的执行权限关掉,只保留读写权限,从根源上堵住漏洞。还有服务器上不用的端口、服务该关的关,尽量减少暴露面。
再翻一翻访问日志,看看入侵前后有没有异常的请求路径、陌生的IP地址,尤其是带上传参数、SQL注入特征的请求,基本就能定位到具体是哪个页面、哪个功能出的问题,针对性修复就好。
第四步:恢复上线后的收尾工作
确认清理干净、漏洞也补上了,再慢慢恢复站点访问,别着急忙慌就上线。
先内部测试一遍,各个页面都点开看看,源码再检查一轮,确认没有残留的恶意内容,功能也都正常。没问题了再逐步恢复解析和访问,不要一上来就全开。
如果站点已经被搜索引擎标记为风险站点,或者收录了大量非法页面,要去搜索资源平台提交死链清理,同时提交安全复查申请,说明问题已经修复,申请解除风险提示。这个过程可能需要几天到一周,耐心等审核就行。
后续一段时间多留意站点状态,定期查看文件修改记录和访问日志,保持系统和程序更新,做好定期备份。有条件的话装个网站防火墙,拦截常见的扫描和注入攻击,能省不少事。
其实大部分源码被篡改的情况,都不是什么高深的黑客攻击,无非是利用了弱密码、老旧漏洞、配置不当这些基础问题。平时做好基础防护,定期备份和更新,就能避开绝大多数风险。真出问题了也别慌,按步骤来,先止损再清理后加固,稳一点总没错。