企业网站突然跳转到陌生的页面,或者搜索引擎显示完全不相干的标题或描述时,表示网站可能出现被劫持。需要排查和修复,大部分被劫持网站是可以恢复如初,发现异常后,立即行动的第一步是隔离风险。
如果可以登录服务器,请迅速将网站设置为维护模式。如果使用内容管理系统,如WordPress,可以启用内置的维护功能,或在网站根目录创建一个简单的`index.html`页面,提示用户“网站维护中”。更直接的隔离方法是暂时修改服务器上的网站根目录名称,或通过Web服务器(如Nginx或Apache)的配置文件,将整个站点临时重定向到一个静态告示页。这能防止用户继续访问被篡改的页面,避免负面影响扩大,同时也为排查争取时间。
紧接着,需要准确判断劫持的类型和入口。劫持通常通过几个主要途径发生。最常见的是服务器文件被篡改。黑客可能通过漏洞上传了后门文件,或直接修改了网站的源代码。你需要立即检查服务器上的网站文件。重点关注根目录下的`index.php`、`index.html`以及`.htaccess`(Apache服务器)等入口文件,查看是否插入了陌生的、高度混淆的JavaScript代码或iframe跳转代码。使用命令行工具进行快速排查非常高效。例如,在Linux服务器的网站根目录下,可以运行以下命令,快速查找最近7天内被修改过的文件:
find . -type f -mtime -7 -name "*.php" | head -20
或者,搜索包含典型劫持代码(如`eval(`、`base64_decode`、`fromCharCode`、`iframe`、`window.location`)的文件:
grep -r "eval\(base64_decode\|fromCharCode\|iframe\|window.location" . --include="*.php" --include="*.js"
另一种常见的劫持是DNS劫持或域名解析被污染。访问站长工具或全球性的DNS查询网站,检查你的域名是否被解析到了陌生的IP地址。如果DNS记录在未经授权的情况下被修改,你需要立即联系你的域名注册商,验证账户信息,并尽快将DNS记录修正回你服务器的正确IP地址,同时为账户启用双因素认证。
还有一种情况是搜索引擎劫持。网站内容本身看似正常,但搜索引擎收录的标题和描述却变成了垃圾广告词。这通常是通过判断访问者User-Agent实现的:当用户直接访问时显示正常内容,但当检测到来自百度或谷歌爬虫的访问时,则返回一套不同的、包含垃圾关键词的内容。检查服务器日志,或使用搜索引擎的“以URL身份抓取”工具进行模拟抓取,可以帮助发现这种伪装。
在定位到问题根源后,开始进行彻底清理。如果确认是文件被篡改,最可靠的方法是从一个干净的备份中恢复。请务必确保使用的备份文件是在网站被入侵之前创建的、绝对干净的版本。切勿使用近期可能已被感染的备份。
如果没有干净的备份,则需要手动清理。这包括:
1. 删除所有可疑文件:不仅是被篡改的网页文件,更要仔细查找那些名字看似正常(如`wp-config.php.bak`、`cache.php`)或隐藏的WebShell后门文件。
2. 彻底更新:将所有CMS核心、主题、插件更新到最新版本。旧版本的漏洞是黑客最常用的入口。
3. 重置所有密码:包括服务器SSH/FTP密码、数据库密码、网站后台管理员密码等。确保每个密码都是高强度且唯一的。
4. 审查数据库:黑客可能在数据库的帖子内容、选项表等字段中注入恶意代码。需要仔细筛查。
清理过程中,务必注意避免陷入“猫鼠游戏”。有些恶意代码具有重复感染能力,如果没有清除干净后门,网站很快又会被篡改。因此,清理后需要密切监控文件完整性。可以使用文件完整性监控工具,或简单的脚本,记录关键文件的哈希值,定期比对。
网站恢复上线后,加固安全防御是防止复发的关键。首先,堵住漏洞入口:
强化凭证安全:杜绝使用弱密码,为所有管理后台启用双因素认证。
保持更新:建立机制,确保服务器操作系统、Web服务软件、PHP/Node.js等运行环境,以及所有应用代码都能及时更新安全补丁。
最小权限原则:Web服务器运行用户(如`www-data`)只应拥有对网站文件的读取和执行必要写入的权限,不应有系统级的权限。
其次,部署主动防护:
配置Web应用防火墙:无论是云WAF还是服务器层面的软件WAF,都能有效拦截常见的注入、跨站脚本等攻击。
修改默认设置:更改CMS的默认后台地址、数据库表前缀等。
限制访问:通过`.htaccess`或Nginx配置,限制后台管理页面的访问IP,仅允许公司或家庭IP访问。
最后,修复信任与声誉。网站劫持,尤其是被谷歌等搜索引擎标记为“危险网站”后,恢复排名需要时间。你需要:
提交重新审核:在Google Search Console和百度站长平台中,确认网站已彻底清理后,提交安全问题和重新审核请求。
更新sitemap:生成并提交新的网站地图,引导搜索引擎重新抓取。
增加正面信号:持续发布高质量原创内容,通过合法的渠道获取一些优质外链,向搜索引擎传递网站已恢复健康的积极信号。
在整个处理过程中,保持详细的记录至关重要:入侵发生的时间、发现的异常现象、排查的步骤、找到的恶意代码样本、清理的操作以及加固的措施。
CN
EN