网站被植入JS跳转代码_数据库清理与修复_避免反复被跳转_2024最新
很多站长发现网站被跳转后,只是简单删除了可见的恶意代码,但没过几天跳转又出现了,因为攻击者通常会留下多个后门和隐藏的跳转代码。网站被恶意跳转的根本原因是网站存在安全漏洞被入侵,只删除表面代码不修补漏洞,攻击者随时可以再次植入跳转。本文讲解如何全面排查、彻底清除、修补漏洞、防止复发。
第二步是排查页面源码中的恶意代码。查看网站首页和被跳转页面的HTML源码,搜索以下关键词:script、iframe、meta http-equiv="refresh"、window.location、document.location、location.href、top.location、self.location、eval、unescape、String.fromCharCode、atob、base64。恶意跳转代码通常被加密或混淆,比如eval(function(p,a,c,k,e,d){...})、document.write(unescape('%3C%73%63...'))、document.write(atob('PHNjcmlwd...'))。这些代码解密后通常是一段JS跳转或iframe嵌入代码。
排查恶意跳转的第一步是确认跳转类型和范围。使用不同浏览器、不同设备(PC/手机)、不同网络环境访问网站,确认跳转是否稳定复现。使用curl命令模拟搜索引擎爬虫访问(设置User-Agent为百度蜘蛛),检测是否存在针对爬虫的暗跳。查看跳转的目标域名,记录跳转URL,这有助于后续分析和投诉。使用浏览器开发者工具(F12)的Network面板,查看跳转是通过HTTP 301/302状态码、meta refresh标签、JS代码还是iframe实现的。
第五步是排查隐藏的后门和webshell。恶意跳转只是攻击者的目的之一,网站被入侵后通常还会留下webshell后门,用于再次植入代码。使用木马扫描工具(如安全狗、云锁、360网站安全检测)进行全站扫描。手动检查upload、cache、tmp、data等可写目录,查找异常的PHP文件。搜索包含eval、assert、system、exec、base64_decode等危险函数的文件。检查后台管理员账户,删除陌生账户。检查FTP账户和数据库用户,删除陌生账户。检查定时任务,删除可疑任务。只有清除所有后门,才能避免跳转反复出现。
第四步是排查程序和数据库层面的跳转。检查网站的模板文件,恶意跳转代码经常被植入页脚模板(footer)、头部模板(header)、首页模板中。检查CMS的后台设置,有些攻击者会在后台的站点设置、广告位、统计代码位置植入跳转代码。检查数据库,搜索文章内容表、配置表、友情链接表中的恶意代码,使用SQL语句搜索包含