原因
最近这段时间有点空暇,所以在搭建自己的spring cloud脚手架。然后还特意去腾讯云低价弄了2台云服务器做自己的中间件的平台,把我的msyql,eureka,rocketmq,nacos,等等一系列中间件docker打包上去了。做我的脚手架中间件支撑,在github上也有同步。昨天,遇上事情了。
过程
由于我的代码放到github上去了。我的yml文件上的数据库连接账号密码是明文形式的。(这也是自己的重大问题。其实在公司开发的时候这些东西都是加密的)我昨天正在美滋滋的测试我的脚手架服务。突然数据库连接报错。数据无法插入。。我直接就蒙了。这咋回事,怎么数据库好好地突然出问题了呢?
解决
我急急忙忙的切到我自己的数据库上。一看。所有的库表都已经没了。只剩下一个warn的表。点进去一看,只有一行数据,如下
To recover your lost Database and avoid leaking it: Send us 0.03 Bitcoin (BTC) to our Bitcoin address 1GkZpdfQdUQasnt12P9pSnx8sohm4NgqNQ and contact us by Email with your Server IP or Domain name and a Proof of Payment. If you are unsure if we have your data, contact us and we will send you a proof. Your Database is downloaded and backed up on our servers. Backups that we have right now: chen_data, chen_data2, nacos_config, xxl_job. If we dont receive your payment in the next 5 Days, we will make your database public or use them otherwise.
意思就是。我的数据表被绑架啦,上面的所有数据都被下载并且删除了,要赎回我的数据,就要在5天以内给一个地址发0.03的比特币,才把数据库还给我,不然就撕票,公布我的数据。我写文章的时候比特币价格快1w美元。0.03对应RMB那可是要将近2000块钱了。还好垃圾数据,随意啦。而且我估计这种价钱还跟你的数据数量有关。这300美元的小钱估计还是黑客看我数据太少,随便要的吧。换一个数据量大的。那不得狮子大开口了?简直过分啊
说起来也是我自己傻,在github上居然展示的明文数据库密码,估计被黑客的自动扫描信息给扫描到了。所以就发生了以下的事情。不过还好。本来就是我用作测试的数据库,就一张测试表,随便建的,以及一个xxljob的表和一个nacos的表。1分钟也就恢复了。我只得匆匆改了密码,重新建了数据库。然后把数据库连接池上的账号密码用nacos动态配置了。这里就不得不提还好我接了nacos,这也算是一种数据库密码的保护吧。
结论
大家平时写代码的时候还是要注意啊。安全意识真的非常重要。密码明文不可取啊。我这种自己测试的库就算了。没啥重要的东西。如果是什么重要的数据库啥的。能加密就加密,能上远程配置中心还是得远程配置中心。github毕竟是公开代码。谁都能看到的。这世界很美好,但是也少不了充满恶意的人。害人之心不可有,防人之心不可无啊。也是告诫自己,时时刻刻还是要警惕心,不能麻痹大意咯。