给客户做了一个网站,上线第三天被黑了——我的复盘

王尘宇 经验分享 1

做自由职业第五年了,大大小小的项目经手过上百个。说一个今年年初踩的坑,教训够我记一辈子。

项目背景

客户是个做外贸的小公司,预算不高,要求也不复杂:一个企业展示站,中英双语,能在线询盘就行。我报了一万二,包含设计、开发、部署、三个月维护。WordPress搭的,用了Avada主题,部署在阿里云轻量服务器上。正常流程一周搞定。

上线那天一切正常。客户在群里发了个红包,皆大欢喜。

事情发生在第三天

早上醒来看到客户发了十几条微信,全是截图——网站首页变成了一个黑色页面,上面写了一行红色的阿拉伯文。Google一搜那行字,是一个中东黑客组织留下的"签名"。

脑子嗡了一下。赶紧SSH连服务器,发现wp-content目录下多了一堆.php文件,文件名是随机字符串。再看数据库,wp_users表里多了两个管理员账号。

复盘:哪里出了问题

花了一天排查,问题出在三个地方——全是低级错误:

第一,管理员账号用户名就是"admin",密码是"admin123"。我承认这是偷懒。项目紧,想着"先把演示环境跑通,上线前再改",然后就忘了。

第二,wp-config.php里的数据库前缀是默认的wp_。这不算直接漏洞,但让自动化扫描工具更容易定位。

第三,服务器上没有装任何安全插件。Wordfence都没装。理由是"轻量服务器内存小,装插件怕慢"。省了200M内存,换来一整个站的沦陷。

攻击方式不复杂:字典爆破wp-login.php。admin/admin123这个组合,在任何一个密码字典里都是前三条。说白了不是黑客厉害,是我自己开门让人进来的。

补救和教训

当天做了这些:备份数据库和uploads目录,整个服务器重装系统,WordPress全新安装,逐条导入数据。从早上九点搞到凌晨两点。客户那边赔了三个月的免费维护,外加一顿诚恳的道歉。

从那以后,我自己定了个上线的检查清单,贴在显示器旁边:

1. 管理员账号不用admin,密码至少16位随机字符

2. 数据库前缀改成随机字符串,不碰wp_默认值

3. 必装Wordfence(免费版够用),开启登录限制

4. wp-login.php加一层HTTP Basic Auth

5. 禁用xmlrpc.php(除非真需要用)

6. 所有插件和主题保持自动更新

做这行久了容易麻木,觉得"小站没人盯上"。实际上现在的扫描工具是全自动的,不挑目标,扫到漏洞就注入。跟小偷撬门一样——不是你家特别有钱,是门没锁。

希望看到这篇文章的人别走我的老路。安全这事,真出了事才重视,代价太大了。

标签: WordPress安全 网站被黑 经验复盘 安全漏洞 站长经验

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~