你的网站突然跳转到赌博或色情页面?别关网页,先深呼吸
刚点开自己网站,秒跳澳门赌场——不是幻觉,是真被黑了。别急着删文件、重装系统,更别发朋友圈求助,先稳住,5分钟内就能摸清问题在哪。
网站被劫持,到底有哪几种常见手法?
黑客很少硬闯服务器。他们更爱“下毒”:悄悄塞一段代码进去,等用户一访问,就自动拐走。
最常见的是代码注入。恶意脚本被塞进你的主题文件、插件文件,甚至数据库里。它可能藏在 header.php 里,也可能混在 functions.php 底部,用 base64 加密,不仔细看根本发现不了。
第二种是 DNS 劫持。你的域名没丢,但解析地址被偷偷改了——用户输的是你的网址,实际打开的却是黑客的服务器。
第三种很隐蔽:.htaccess 被动了手脚。这个文件管着整个网站的访问规则,加一行 RewriteRule,就能把所有流量无声无息导走。
我帮一个做本地装修的客户排查过。他网站白天好好的,一到晚上11点后就跳博彩页。最后在主题的 functions.php 末尾,找到一段带时间判断的加密代码——专挑人少的时候动手,白天还假装清白。
第一步:如何快速定位被篡改的源头?
别急着删代码。先搞清楚:谁被改了?什么时候改的?改了几处?
如果你有近期备份,直接拿它和线上文件对比。没有备份?去 WordPress 官网或主题/插件作者官网,下载一份干净的原始包。
重点盯这几个位置:
- 主题目录下的
header.php、footer.php、functions.php、index.php - 所有已启用插件的主文件(尤其是那些很久没更新的)
- 网站根目录的
index.php和.htaccess - 数据库里的
wp_options表(WordPress 用户),查siteurl、home、theme_mods_xxx这类字段值
最快的办法是看修改时间。用 FTP 工具或主机后台文件管理器,按“最后修改时间”倒序排列。出问题那天前后被改过的文件,优先打开看。
那个装修客户的案例,就是靠这招——functions.php 的修改时间比其他文件晚了3天,一眼锁定。
第二步:清理恶意代码,具体怎么操作?
确认问题文件后,动作要快,但别手抖。先下载一份被感染的文件留底,再动手。
✅ 最稳妥的做法:用干净文件直接覆盖
主题和插件的核心文件,别手动删代码。下载官方原版,整包上传覆盖。WordPress 后台点“重新安装”也行,比修修补补更彻底。
✅ .htaccess 别硬改
除非你天天写重写规则,否则直接删掉它,换一个标准的干净版本(WordPress 默认的就行)。网上搜“WordPress default .htaccess”就能复制。
✅ 数据库里的毒,得手动清
进 phpMyAdmin 或主机数据库管理页,打开 wp_options 表,搜索字段值里有没有 http:// 开头的陌生链接,尤其注意 option_value 列。看到就点编辑,删掉那段脚本。
做完这些,立刻改密码:
- 网站后台登录密码
- FTP 账号密码
- 数据库密码(如果能单独改)
- 主机控制面板密码(比如 cPanel、宝塔)
新密码至少12位,字母+数字+符号组合。顺便检查文件权限:普通文件设为 644,目录设为 755,wp-config.php 这种敏感文件,权限改成 400 或 440。
第三步:如何加固网站,防止再次被劫持?
清完毒只是开始。真正的防线,得建在平时。
🔹 更新不能拖。WordPress 核心、你正在用的主题、每一个插件——只要后台弹出“有新版本”,当天就升。很多安全补丁,就藏在那条更新日志里。
🔹 把不用的东西全删掉。停用半年以上的插件?删。换了三次的主题模板?删。每多一个闲置文件,就多一道没上锁的门。
🔹 装个靠谱的安全插件。Wordfence 或 Sucuri(免费版够用),开防火墙、定期扫木马、限制登录失败次数。后台登录强制开两步验证,再加一层保险。
🔹 备份要离线存。每周手动打包一次全站(文件 + 数据库),下到你自己的电脑里,别只存在主机上。万一整站被锁,这是你唯一能翻盘的底牌。
🔹 别忘了查查你自己。很多“被黑”,源头是本地电脑中了木马,FTP 密码早被偷走了。用 Windows Defender 全盘扫一遍,或者换个杀软深度查。以后连服务器,优先用 SFTP,别用明文传输的 FTP。
那个装修客户后来发现,合作的外包程序员电脑中毒,FTP 密码早就泄露了——黑手根本不在服务器上,而在他同事的笔记本里。
如果你的网站已经被搜索引擎标记了怎么办?
清理完网站,搜一下你品牌名。如果结果页还挂着“澳门百家乐”“在线体育投注”这种标题……说明垃圾页面已被收录,搜索引擎还没来得及刷新认知。
马上做三件事:
- 登进 Google 搜索中心 和 百度搜索资源平台(你本来就在用的两个平台),提交最新网站地图(sitemap.xml),再对首页、产品页、关于我们这类核心页面,点“请求重新索引”。
- 如果发现大量带
/wp-content/xxx/xxx.html这种奇怪路径的垃圾页,先用.htaccess加一条RewriteRule把它们 404 掉,或者在robots.txt里Disallow掉整段路径,再提交“清理 URL”申请。 - 在微信公众号、官网 banner 或微博发一句简单声明:“近期网站遭遇技术异常,目前已全面修复,感谢用户耐心等待。” 不解释细节,不甩锅,只传递“问题已解决”的信号。
重建信任需要时间。接下来一个月,坚持发原创内容、保持网站稳定打开,搜索引擎会慢慢把旧印象擦掉。
今天下班前就能完成的紧急自查清单
别等明天。现在打开电脑,照着做:
- 立刻改密码:进 WordPress 后台、FTP 管理页、主机控制面板,把这三处密码全换成新的,复杂一点。
- 查 DNS:登录你买域名的地方(阿里云、腾讯云、新网都行),点进域名解析设置,确认所有记录都指向你熟悉的服务器 IP,删掉任何不认识的 A 记录或 CNAME。
- 翻
.htaccess:用 FTP 进根目录,右键编辑.htaccess,找有没有RewriteRule或Redirect开头、后面跟着乱七八糟网址的行。有就截图,先别删。 - 看修改时间:在 FTP 里,按“修改时间”排序,盯紧这五个文件:根目录
index.php,以及你当前主题下的header.php、footer.php、functions.php、index.php。哪个时间明显不对劲,标出来。 - 马上备份:进主机后台或用 FTP,把整个网站文件夹打包下载;再进 phpMyAdmin,导出全部数据库 SQL 文件。存到你电脑桌面,别存在云端或邮箱里。
这五步做完,你已经拦住了90%的明面风险。剩下的,可以明天再请人细查——但今晚,你已经赢回了主动权。