网站被黑后如何恢复:站长 72 小时处理清单

网站被黑时,最怕的是一边慌忙删除文件,一边继续让攻击者在线操作。正确顺序是:先隔离,再备份,再排查,再恢复,最后加固和申诉。

这篇不是某个具体站点的“亲历故事”,而是一份适合个人站长和小型内容站的应急清单。

第 0 步:确认是否真的被黑

常见信号包括:

  • 首页被篡改。
  • 搜索结果标题变成博彩、色情、贷款等内容。
  • 访问时跳转到陌生网站。
  • 服务器 CPU、带宽异常。
  • 网站目录出现陌生 PHP、JS 或压缩包。
  • Search Console 提示安全问题。

不要只看首页。很多黑产会只对搜索引擎或移动端用户跳转。

第 1 步:隔离网站

如果确认异常,先降低损失:

  • 暂停可疑插件、主题或上传入口。
  • 临时关闭后台登录或限制 IP。
  • 必要时让网站进入维护页。
  • 不要马上删除所有文件,先留证据。

如果是 VPS,可以先在 Nginx 或防火墙层限制访问,只保留自己的 IP 排查。

第 2 步:完整备份

备份不是为了恢复坏文件,而是为了保留证据和对比。

至少备份:

  • 网站文件目录。
  • 数据库。
  • Nginx / Apache 配置。
  • 访问日志和错误日志。
  • 定时任务。
  • 上传目录。

备份文件要放到本机或安全存储,不要继续放在被黑服务器同一目录。

第 3 步:查入口

常见入口有:

  • 弱密码。
  • 旧版本 CMS、插件、主题。
  • 上传接口未限制文件类型。
  • 服务器面板暴露公网。
  • 数据库密码泄露。
  • SSH 被爆破。
  • 目录权限过宽。

站长可以先查三类日志:

/var/log/nginx/access.log
/var/log/nginx/error.log
/var/log/auth.log

重点看异常 POST、后台登录、上传请求、404 扫描和陌生 IP。

第 4 步:清理恶意内容

如果是 WordPress,可以重点检查:

  • wp-content/uploads 是否有 PHP 文件。
  • 主题目录是否有陌生文件。
  • 插件目录是否被改动。
  • index.php.htaccesswp-config.php 是否被插入代码。
  • 数据库文章是否被批量插入垃圾链接。

更稳妥的做法是:

  1. 下载全新官方程序。
  2. 保留必要配置和上传文件。
  3. 重新安装可信插件和主题。
  4. 数据库只恢复确认干净的数据。

不要从不明来源下载“修复版插件”。

第 5 步:轮换所有密钥和密码

清理完成后,立即更换:

  • SSH 密码或密钥。
  • 服务器面板密码。
  • 数据库密码。
  • CMS 管理员密码。
  • FTP/SFTP 账号。
  • API Key。
  • CDN、域名、对象存储后台密码。

有条件的话,后台都开启两步验证。

第 6 步:重新上线前检查

上线前至少确认:

  • 页面不再跳转。
  • 搜索结果里的垃圾页面返回 404 或 410。
  • sitemap 不包含异常 URL。
  • robots.txt 没有被篡改。
  • 后台登录路径和权限正常。
  • 日志里没有持续异常请求。

第 7 步:向搜索引擎提交复审

如果 Google Search Console 或 Bing Webmaster Tools 提示安全问题,清理后提交复审。说明要简洁:

  • 已确认入侵原因。
  • 已清理恶意文件和垃圾页面。
  • 已更新程序和插件。
  • 已更换密码和密钥。
  • 已增加防火墙或登录限制。

复审通常需要时间,不要反复提交。

后续加固清单

  • 只开放 22、80、443 等必要端口。
  • SSH 禁用密码登录或限制 IP。
  • 安装 fail2ban。
  • CMS、插件、主题定期更新。
  • 上传目录禁止执行脚本。
  • 每天自动备份。
  • 定期查看 Search Console 安全问题。
  • Nginx 增加限流和基础安全头。

总结

网站被黑后,不要先急着删文件。正确流程是:隔离、备份、排查入口、清理、轮换密钥、验证、复审、加固。只要流程清楚,小站也能把损失控制住。

相关阅读: