美文网首页
Django博客优化 数据库安全

Django博客优化 数据库安全

作者: 早_wsm | 来源:发表于2020-12-04 11:30 被阅读0次

    前言

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

    image.png
    image.png

    1.修改数据库登录密码

    • 方法1: 使用set password命令进入数据库修改
    # 示例:
    mysql> set password for 用户名@localhost = password('新密码');  
    
    • 方法2:使用mysqladmin在外部修改
    # 示例:
    mysqladmin -u用户名 -p旧密码 password 新密码  
    
    • 方法3:进入user表用update更改user
    # 示例:
    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的权限

    • 删除root远程登录访问新建库test的权限
    delete from  user where host='%' and user = 'root';
    
    • 尝试使用新创建的用户与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命令定时完成全站备份!

    相关文章

      网友评论

          本文标题:Django博客优化 数据库安全

          本文链接:https://www.haomeiwen.com/subject/exkvwktx.html