你的网站突然跳转到赌博或色情页面?别关网页,先深呼吸

刚点开自己网站,秒跳澳门赌场——不是幻觉,是真被黑了。别急着删文件、重装系统,更别发朋友圈求助,先稳住,5分钟内就能摸清问题在哪。

网站被劫持,到底有哪几种常见手法?

黑客很少硬闯服务器。他们更爱“下毒”:悄悄塞一段代码进去,等用户一访问,就自动拐走。

最常见的是代码注入。恶意脚本被塞进你的主题文件、插件文件,甚至数据库里。它可能藏在 header.php 里,也可能混在 functions.php 底部,用 base64 加密,不仔细看根本发现不了。

第二种是 DNS 劫持。你的域名没丢,但解析地址被偷偷改了——用户输的是你的网址,实际打开的却是黑客的服务器。

第三种很隐蔽:.htaccess 被动了手脚。这个文件管着整个网站的访问规则,加一行 RewriteRule,就能把所有流量无声无息导走。

我帮一个做本地装修的客户排查过。他网站白天好好的,一到晚上11点后就跳博彩页。最后在主题的 functions.php 末尾,找到一段带时间判断的加密代码——专挑人少的时候动手,白天还假装清白。

第一步:如何快速定位被篡改的源头?

别急着删代码。先搞清楚:谁被改了?什么时候改的?改了几处?

如果你有近期备份,直接拿它和线上文件对比。没有备份?去 WordPress 官网或主题/插件作者官网,下载一份干净的原始包。

重点盯这几个位置:

  • 主题目录下的 header.phpfooter.phpfunctions.phpindex.php
  • 所有已启用插件的主文件(尤其是那些很久没更新的)
  • 网站根目录的 index.php.htaccess
  • 数据库里的 wp_options 表(WordPress 用户),查 siteurlhometheme_mods_xxx 这类字段值

最快的办法是看修改时间。用 FTP 工具或主机后台文件管理器,按“最后修改时间”倒序排列。出问题那天前后被改过的文件,优先打开看。

那个装修客户的案例,就是靠这招——functions.php 的修改时间比其他文件晚了3天,一眼锁定。

第二步:清理恶意代码,具体怎么操作?

确认问题文件后,动作要快,但别手抖。先下载一份被感染的文件留底,再动手。

最稳妥的做法:用干净文件直接覆盖
主题和插件的核心文件,别手动删代码。下载官方原版,整包上传覆盖。WordPress 后台点“重新安装”也行,比修修补补更彻底。

.htaccess 别硬改
除非你天天写重写规则,否则直接删掉它,换一个标准的干净版本(WordPress 默认的就行)。网上搜“WordPress default .htaccess”就能复制。

数据库里的毒,得手动清
进 phpMyAdmin 或主机数据库管理页,打开 wp_options 表,搜索字段值里有没有 http:// 开头的陌生链接,尤其注意 option_value 列。看到就点编辑,删掉那段脚本。

做完这些,立刻改密码:

  • 网站后台登录密码
  • FTP 账号密码
  • 数据库密码(如果能单独改)
  • 主机控制面板密码(比如 cPanel、宝塔)

新密码至少12位,字母+数字+符号组合。顺便检查文件权限:普通文件设为 644,目录设为 755wp-config.php 这种敏感文件,权限改成 400440

第三步:如何加固网站,防止再次被劫持?

清完毒只是开始。真正的防线,得建在平时。

🔹 更新不能拖。WordPress 核心、你正在用的主题、每一个插件——只要后台弹出“有新版本”,当天就升。很多安全补丁,就藏在那条更新日志里。

🔹 把不用的东西全删掉。停用半年以上的插件?删。换了三次的主题模板?删。每多一个闲置文件,就多一道没上锁的门。

🔹 装个靠谱的安全插件。Wordfence 或 Sucuri(免费版够用),开防火墙、定期扫木马、限制登录失败次数。后台登录强制开两步验证,再加一层保险。

🔹 备份要离线存。每周手动打包一次全站(文件 + 数据库),下到你自己的电脑里,别只存在主机上。万一整站被锁,这是你唯一能翻盘的底牌。

🔹 别忘了查查你自己。很多“被黑”,源头是本地电脑中了木马,FTP 密码早被偷走了。用 Windows Defender 全盘扫一遍,或者换个杀软深度查。以后连服务器,优先用 SFTP,别用明文传输的 FTP。

那个装修客户后来发现,合作的外包程序员电脑中毒,FTP 密码早就泄露了——黑手根本不在服务器上,而在他同事的笔记本里。

如果你的网站已经被搜索引擎标记了怎么办?

清理完网站,搜一下你品牌名。如果结果页还挂着“澳门百家乐”“在线体育投注”这种标题……说明垃圾页面已被收录,搜索引擎还没来得及刷新认知。

马上做三件事:

  1. 登进 Google 搜索中心百度搜索资源平台(你本来就在用的两个平台),提交最新网站地图(sitemap.xml),再对首页、产品页、关于我们这类核心页面,点“请求重新索引”。
  2. 如果发现大量带 /wp-content/xxx/xxx.html 这种奇怪路径的垃圾页,先用 .htaccess 加一条 RewriteRule 把它们 404 掉,或者在 robots.txtDisallow 掉整段路径,再提交“清理 URL”申请。
  3. 在微信公众号、官网 banner 或微博发一句简单声明:“近期网站遭遇技术异常,目前已全面修复,感谢用户耐心等待。” 不解释细节,不甩锅,只传递“问题已解决”的信号。

重建信任需要时间。接下来一个月,坚持发原创内容、保持网站稳定打开,搜索引擎会慢慢把旧印象擦掉。

今天下班前就能完成的紧急自查清单

别等明天。现在打开电脑,照着做:

  1. 立刻改密码:进 WordPress 后台、FTP 管理页、主机控制面板,把这三处密码全换成新的,复杂一点。
  2. 查 DNS:登录你买域名的地方(阿里云、腾讯云、新网都行),点进域名解析设置,确认所有记录都指向你熟悉的服务器 IP,删掉任何不认识的 A 记录或 CNAME。
  3. .htaccess:用 FTP 进根目录,右键编辑 .htaccess,找有没有 RewriteRuleRedirect 开头、后面跟着乱七八糟网址的行。有就截图,先别删。
  4. 看修改时间:在 FTP 里,按“修改时间”排序,盯紧这五个文件:根目录 index.php,以及你当前主题下的 header.phpfooter.phpfunctions.phpindex.php。哪个时间明显不对劲,标出来。
  5. 马上备份:进主机后台或用 FTP,把整个网站文件夹打包下载;再进 phpMyAdmin,导出全部数据库 SQL 文件。存到你电脑桌面,别存在云端或邮箱里。

这五步做完,你已经拦住了90%的明面风险。剩下的,可以明天再请人细查——但今晚,你已经赢回了主动权。