Django博客优化 数据库安全

2020-12-04  本文已影响0人  早_wsm

前言

你无法确定明天会发生什么,谁会想到我的数据库会被黑掉呢!
我从没想到我的博客小破站也会被黑到,但是由于我自身网站也只是开发阶段,一切数据也只是用来测试,倒没有什么损失,只是为了操作方便,设置了弱密码与权限,给了别人可乘之机.正好趁此整理一下关于数据库安全防护方面的知识点!

image.png
image.png

1.修改数据库登录密码

# 示例:
mysql> set password for 用户名@localhost = password('新密码');  
# 示例:
mysqladmin -u用户名 -p旧密码 password 新密码  
# 示例:
mysql> use mysql;  
mysql> update user set password=password('123') where user='root' and host='localhost';  
mysql> flush privileges;  

数据库密码很重要,不要为了方便使用弱密码!

2.修改用户权限

# 创建数据库
create database test charset=utf8;
# 创建新用户并控制权限
grant 你要赋予的权限 on test.* to '新用户'@"设置远程访问的主机地址" identified by '强密码';
# 为了方便操作,可赋予一个本机登录权限
grant 你要赋予的权限 on test.* to '新用户'@"localhost" identified by '强密码';
# 刷新缓存,让配置生效
flush privileges;
# 进入mysql库
MariaDB [(none)]> use mysql;
# 查看user表中的user与host查看权限
MariaDB [mysql]> select user,host from user;
+------+----------------+
| user | host           |
+------+----------------+
| root | %              |
| 新用户  | 访问ID |
| root | 127.0.0.1      |
| root | ::1            |
|      | localhost      |
| root | localhost      |
| 新用户 | localhost      |
| root | test     |
+------+----------------+

如果你发现你的root用户也同时具有访问任何库与任意主机远程地址登录的权限,需要根据自己需求来做限制,为了更高的安全性,我选择删除root的权限

delete from  user where host='%' and user = 'root';
mysql -u新用户 -p test
# 可以正常登陆,再尝试远程登录

3.修改数据库端口

数据库默认端口3306,为了加强安全性可以更改一个只有自己知道的端口,降低被破解访问的风险

MariaDB [(none)]> show global variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
vim /etc/my.cnf
# 主要修改port即可
[mysqld]
port=xxxx
# 若没有则添加
[client]
port=xxxx
# 我这里使用的是mariadb
systemctl restart mariadb.service

4.数据库备份

即使做了所有防护策略也不能避免意外发生,数据库备份是我们最后一道可靠的保障.
数据库备份有很多方法,可根据自己的业务需求选择全量备份,增量备份,冷备份,热备份等等等等,因为我的数据体量很小,只选择使用shell脚本配合mysqldump命令定时完成全站备份!

上一篇 下一篇

猜你喜欢

热点阅读