防止Mysql数据库被黑,提高数据安全性的具体操作方法

防患于未然是我出发点

”如其在事情发生后着急忙慌的补救,不如前期就开始做一些工作来避免这个事的发生“,这是我亲历数据库被黑之后,体会到的深刻教训!

情况背景

最近开发的一个项目,虽然还在测试阶段,但是大体功能基本已经完成,本来一切进行的比较平稳,但是不幸的事发生了,数据库被黑客黑掉了,数据库里面原先的表都被删除了,新增了WARNING表,里面新增了一条记录,大概意思就是:“要想拿回你的库,按我们指示操作打钱,如若不然,泄漏掉你数据库里的信息”。一阵惊恐和受伤之后,就是结合自己的情况冷静的分析问题了。
点击查看被黑详情.

提高数据安全方法

1.复杂化数据库用户密码

新安装的Mysql数据库中只有一个用户:root,密码设置可由大小写字母、符号和数字组合的形式组成,尽量复杂化,修改密码步骤如下:

#进入mysql数据库
mysql -uroot -p*****
#切换到mysql库,mysql库里存放着user表
use mysql;
#查看user表情况,新安装mysql数据库的user表只有一个root用户
select host,user from user;
#update user set password=password('******')  where user = 'root';
# 修改后刷新权限
flush privileges;
#退出mysql数据库
exit;

提示:也可以按此方式修改root 用户名称,这样会更好!

2.限制数据库用户权限

新安装好的Mysql数据库一般除了所在服务器能访问外,其他服务器的ip地址时访问不了的,但是有些小伙伴回修改 root 用户的访问权限,允许所以的机器 Ip 地址都能访问,比如之前的我就是这样做的(后悔莫及了)。现在我的处理方式是:root 用户访问权限不变,为了开发需要,我可以新建一个临时用户testUser,并赋予该用户只允许某个特定机器的Ip地址访问,其他机器也是访问不了的,等开发完毕,项目正式上线后,就再把此临时用户删掉即可,新建临时用户步骤如下:

#进入mysql数据库
mysql -uroot -p*****
#切换到mysql库,mysql库里存放着user表
use mysql;
#查看user表现有
select host,user password from user;
#创建开发阶段所需临时用户:testUser,自定义密码,尽量复杂化
create user 'testUser'@'localhost' identified by '临时用户密码';
#给新建临时用户分配访问权限,192.168.*.*** 为允许访问的Ip地址
grant all privileges on *.* to 'testUser'@'192.168.*.***' identified by '临时用户密码' with grant option;
# 修改后刷新权限
flush privileges;
#退出mysql数据库
exit;

提示:经过以上步骤,在特定Ip地址机器上,就可以使用临时用户名称和密码访问安装的Mysql数据库了

3.修改数据库默认端口

有经验的开发人员,项目部署到正式环境,会把Mysql数据库的默认端口替换成不常见的端口,例如:33066,替换默认端口步骤如下:

#进入mysql数据库
mysql -uroot -p*****
#查看当前数据库的端口号,未修改端口情况下一般显示3306
show global variables like 'port';
#验证了mysql数据库是3306之后,就退出mysql数据库
exit;
#紧接着进入相关配置文件修改端口号,退出数据库后,使用命令进入根目录etc文件夹
cd /etc/
#编辑etc文件夹下my.cnf文件修改端口号,修改不了就直接添加一行例如:port = 33066
vi my.cnf
#修改好my.cnf文件保存并退出,接着需要重启mysql服务
service mysql restart
#以防万一你可以重新进入mysql数据库,查看端口是否更改过来

图1
提示:你自定义的端口,如果服务器没有开通此端口,你需要在服务器管理后台开通此端口号,要不然还是访问不了数据库!且最好关闭之前的默认端口3306

4.准备数据库服务器

我被黑的Mysql数据库是和应用服务器(代码打包后部署的服务器)安装在一起的,经过向行内朋友请教和网上查找答案,为了安全正式环境应该把数据库单独放一台服务器,只允许让应用服务器IP来访问数据库服务器,通过独立两者,就算其中一台发生问题,另一台也是好的,进一步降低了危险性。

5.定时备份数据库数据

可以定时的备份数据库,开发定时备份功能,每天晚上备份一下数据库,如果没有备份服务器,可以把备份数据存在应用服务器上。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值