如果您喜欢我的创作,可以赞助我。您的支持将帮助我继续创作更多优质内容,感谢您的慷慨支持!

背景

项目组最近在与企业合作,我们小组的任务是要做一个热搜的爬虫项目。我们的规划是一个人负责热搜爬取并存到数据库中,另一个人(我)负责写一个web框架展示数据。我基于Python的Flask框架搭建了一个简单的网站,并放在了我许久不用的服务器上。

问题

BUT,在我觉得已经完成的时候,今天突然网站报错了。

看了报错信息,发现是mysql连不上数据库了。我用Navicat尝试连接仍旧无果。我ssh进入服务器,发现docker中并没有运行中的mysql5.7。我以为单纯是程序crash掉了,重新打开mysql容器,发现我的hot数据库没了,但是多了一个数据库。内容如下。

All your data is backed up. You must pay 0.008 BTC to 1BNXTmWMd1sYtUQ43XxLSJDao3wZn6Csay In 48 hours, your data will be publicly disclosed and deleted. (more information: go to https://cutt.ly/rambler2)

After paying send mail to us: rambler+2ebnm@onionmail.org and we will provide a link for you to download your data. Your DBCODE is: 2EBNM

之后与朋友分享了这件事情,发现问题的关键是我贪图省事,给mysql设置了弱口令。想到可能存在专门的团队批量在扫描这些存在弱口令漏洞的ip,也就不以为奇了。

因为现在表中并没有有价值的数据(仅仅存了为了写web的假数据),而且我的电脑本地有备份。我重新创建了新的mysql容器,并导入了数据。

反思

在未来部署项目中一定要防范弱口令漏洞,虽然部署的时候简单方便,但是这往往会造成更麻烦的问题,而且还会造成数据丢失与泄露的问题。还有就是要注重服务器数据的备份工作,为服务器最坏情况做好Plan B的准备。