昨天老张的个人博客突然打不开,一查发现首页被替换成“Hacked By XXX”,后台登录页跳转到钓鱼页面,连数据库都被人导出了——这可不是电影桥段,是真实发生在小站长身上的事。网站被黑,别慌,按步骤来,多数情况还能抢回来。
第一步:立刻断网隔离
别急着修,先保安全。如果你有服务器权限,马上停掉网站服务:
sudo systemctl stop nginx或者进宝塔面板点「停止」,虚拟主机用户直接登录空间管理后台,暂时关闭域名解析或暂停站点。目的只有一个:阻止黑客继续读写、发垃圾邮件、挂黑链、当肉机。第二步:确认被黑类型
常见几种表现,对号入座:
• 首页/文章页突然出现赌博、色情广告(多半是挂马或JS劫持);
• 后台多出不认识的管理员账号(比如 admin888、test123);
• 网站底部自动加了一串加密 JS 代码;
• 访问时浏览器提示“此网站可能不安全”;
• 搜索引擎收录大量异常页面(如 /wp-content/themes/twentytwentythree/shell.php)。
第三步:找回控制权
先换密码:FTP、数据库、后台管理员、主机控制面板,全部重置为强密码(字母+数字+符号,12位以上)。特别注意 WordPress 用户,检查 wp_users 表里是否有多余管理员,用 phpMyAdmin 直接删掉:
DELETE FROM wp_users WHERE ID NOT IN (1,2); -- 假设只有ID=1和2是你的账号再删后门文件:重点扫 /wp-content/plugins/、/wp-includes/、根目录下异常的 .php 文件(名字像 1.php、shell.php、a.php、_cache.php),还有隐藏文件(如 .htaccess 被篡改、.user.ini 加了 auto_prepend_file)。第四步:彻底清理与加固
升级所有程序:WordPress、主题、插件一个都不能拖;删除不用的主题和插件(哪怕没启用,漏洞照在);把 wp-config.php 移到网站根目录之外;在 wp-config.php 里加两行防定义:
define('DISALLOW_FILE_EDIT', true);
define('DISALLOW_FILE_MODS', true);装个靠谱的安全插件,比如 Wordfence 或 Sucuri,开启登录失败锁定、防火墙规则、定期扫描。虚拟主机用户可开启“防跨站执行”,宝塔用户建议打开“PHP 禁用函数”里的 exec、system、shell_exec、passthru。第五步:善后与预防
被黑期间产生的恶意外链、黑帽页面,去百度搜索资源平台和 Google Search Console 提交“不收录”申请;通知老用户修改相关联的邮箱密码(尤其当数据库泄露时);养成每周备份习惯——不是只备份内容,要包含数据库+全部文件,存到本地或异地云盘,别只靠主机商那套自动备份。最后记住:没有一劳永逸的安全,只有持续更新的习惯和清醒的风险意识。