首页 > 数据库 >记一次MySQL数据库被黑

记一次MySQL数据库被黑

时间:2023-08-19 18:00:13浏览次数:34  
标签:容器 一次 删除 数据库 xxx MySQL Docker

情况概述

偶然获得了一台云服务器, 并在上面使用Docker搭建了MySQL数据库, 想着将平时做Demo用到的数据转过去, 结果一直犯懒没弄. 今天在登陆时发现数据库被黑了.

使用show databases命令后看到一个名为README_TO_RECOVER_A的库, 库中有张表, 表的内容为:

All your data is backed up. You must pay 0.01 BTC to xxx In 48 hours, your data will be publicly disclosed and deleted. (more information: go to xxx)
After paying send mail to us: xxx@xxx and we will provide a link for you to download your data. Your DBCODE is: xxx

大概意思为: 我的数据已被他备份, 我需要在48小时内支付0.01BTC到他的账户, 否则他将公开披露并删除我的数据.

搜索了一下, 0.01BTC的价值大概是2K软妹币. 在白花花的银子面前我瞬间意识到了数据库安全这个问题

安全措施

  1. 首先不要像我一样使用Docker部署MySQL服务, 因为数据会在你停止/删除容器时跟着被删除
  2. 管理员密码一定不能图方便设个'root', 'admin', '123456'
  3. 远程访问的端口号要改
  4. 数据一定要定时备份, 有条件的最好备份在异机/异地

反思

由于我是使用Docker搭建的MySQL, 而且没有任何损失. 所以发现问题时我直接将容器删掉了, 结果在写这篇博客时才想起来可以查看数据库连接日志获取一些信息来丰富这篇文章.

第一次在云服务器上部署MySQL, 图方便使用了Docker, 部署后才发现原来在容器删除或停止后数据也会被删除(因为容器内的文件系统是临时的, 存储在容器的生命周期内, 这也是为什么Docker容器可以快速部署和销毁). 之后又参照其他博客设置了持久化, 但还是对于数据究竟是否保存在硬盘中了还是没底. 这下不用担心了(笑

很愚蠢的为了图方便, 直接用root账户在外网裸奔. 为了连接方便, 密码直接设为了root(对的, 就这四个字母), 端口也没改, 直接开了远程连接.

在个人瞎搞的时候遇见这个问题, 而没有在实际工作中出现, 也算是不幸中的万幸了.

- END -

标签:容器,一次,删除,数据库,xxx,MySQL,Docker
From: https://www.cnblogs.com/ahci316/p/17642816.html

相关文章

  • 记一次对老服务改造
    关于现有老服务使用的技术.net4.6.1+Nancy+Dapper,数据库是需要支持老版本MsSql+新版本MySql、MsSql、DM,项目解决方案单层结构。看到这样的项目内心是...,好了再看内部实现,完全不想说话。if(connectionString.Contains("xx")){//对应数据实现业务}elseif(c......
  • 【5.0】路飞项目之数据库相关
    【一】软件开发模式【1】BBSBBS(BulletinBoardSystem)是一种基于电子信息交流的系统,通常用于在线讨论和发布信息。BBS使用了瀑布开发模式。瀑布开发模式是一种线性的软件开发过程,按照固定的顺序依次完成需求分析、系统设计、编码、测试和运维等阶段。在这个开发模式中,软......
  • MySQL技能树学习
    在MySQL相关技能树的学习过程当中,存在一些问题,比如在移动端的学习体验和PC的学习体验不一样,这个相信学习过的朋友都有所感觉。尤其移动端的技能树切换、同一个技能树内,不同节点的切换,都比较繁琐。PC感觉还好,同样不太好的还有在移动端的返回功能比较难用,   整体而言,MySQL的技......
  • Navicat执行mysql脚本报错
    1、错误日志[Err]1055-Expression#1ofORDERBYclauseisnotinGROUPBYclause andcontainsnonaggregatedcolumn'information_schema.PROFILING.SEQ' whichisnotfunctionallydependentoncolumnsinGROUPBYclause; thisisincompatiblewith......
  • MySqlBulkLoader批量数据插入
    MySqlBulkLoader批实现过程:将需要的数据集保存到CSV文件,然后再从文件里面读取。 CsvHelp1///<summary>2///定义csv文件3///</summary>4///<paramname="folder">路径</param>5///<paramname="......
  • 【故障公告】多年的故障老朋友又来了:数据库服务器 CPU 100%
    数据库服务器CPU100%问题几乎每年都要来几次,从来都不事先打一声招呼,今年的第2次在我们正忙着会员救园的时候来了。今天13:35首先收到我们自己的异常告警通知:ExecutionTimeoutExpired.Thetimeoutperiodelapsedpriortocompletionoftheoperationortheserver......
  • java实现本地数据与阿里云MySQL数据同步:动态表创建与数据更新
    在开发应用程序时,经常需要将数据从一个数据源(如API、外部数据库等)同步到本地数据库中。这可能涉及到不同的表结构和数据模式。在这种情况下,一个主要的挑战是,如果本地数据库中的表结构与源数据不匹配,应该如何自动适应这些变化并确保数据同步的顺利进行。解决方案:动态表创建与数据......
  • Windows安装MySQL后怎么开启root的网络访问权限
    Windows安装MySQL后默认只能本机访问,怎么开启网络访问mysql>createuser'root'@'%'identifiedby'password';QueryOK,0rowsaffected(0.00sec)mysql>grantallon*.*to'root'@'%';QueryOK,0rowsaffected(0.00s......
  • Windows安装MySQL后怎么设置环境变量
    Windows安装MySQL后默认不会设置环境变量需要手动添加已Windows11为例我的电脑-右键-属性-高级系统设置选择环境变量Path选择编辑新建环境变量把MySQL的bin路径添加进去注意:Windows10使用下面的Path添加......
  • 【LeetCode1384. 按年度列出销售总额】MySQL使用with recursive根据开始日期和结束日
    题目地址https://leetcode.cn/problems/total-sales-amount-by-year/description/代码WITHRECURSIVEDateSeriesAS(SELECTproduct_id,period_startASsale_date,period_end,average_daily_salesFROMSales--Assumingyourtablenameissales_dataUN......