Django博客優(yōu)化 數(shù)據(jù)庫安全

前言

你無法確定明天會發(fā)生什么,誰會想到我的數(shù)據(jù)庫會被黑掉呢!
我從沒想到我的博客小破站也會被黑到,但是由于我自身網(wǎng)站也只是開發(fā)階段,一切數(shù)據(jù)也只是用來測試,倒沒有什么損失,只是為了操作方便,設(shè)置了弱密碼與權(quán)限,給了別人可乘之機(jī).正好趁此整理一下關(guān)于數(shù)據(jù)庫安全防護(hù)方面的知識點(diǎn)!

image.png
image.png

1.修改數(shù)據(jù)庫登錄密碼

  • 方法1: 使用set password命令進(jìn)入數(shù)據(jù)庫修改
# 示例:
mysql> set password for 用戶名@localhost = password('新密碼');  
  • 方法2:使用mysqladmin在外部修改
# 示例:
mysqladmin -u用戶名 -p舊密碼 password 新密碼  
  • 方法3:進(jìn)入user表用update更改user
# 示例:
mysql> use mysql;  
mysql> update user set password=password('123') where user='root' and host='localhost';  
mysql> flush privileges;  

數(shù)據(jù)庫密碼很重要,不要為了方便使用弱密碼!

2.修改用戶權(quán)限

  • 創(chuàng)建庫的同時,創(chuàng)建一個專門訪問此庫的用戶,并限制權(quán)限
# 創(chuàng)建數(shù)據(jù)庫
create database test charset=utf8;
# 創(chuàng)建新用戶并控制權(quán)限
grant 你要賦予的權(quán)限 on test.* to '新用戶'@"設(shè)置遠(yuǎn)程訪問的主機(jī)地址" identified by '強(qiáng)密碼';
# 為了方便操作,可賦予一個本機(jī)登錄權(quán)限
grant 你要賦予的權(quán)限 on test.* to '新用戶'@"localhost" identified by '強(qiáng)密碼';
# 刷新緩存,讓配置生效
flush privileges;
  • 查看授權(quán)
# 進(jìn)入mysql庫
MariaDB [(none)]> use mysql;
# 查看user表中的user與host查看權(quán)限
MariaDB [mysql]> select user,host from user;
+------+----------------+
| user | host           |
+------+----------------+
| root | %              |
| 新用戶  | 訪問ID |
| root | 127.0.0.1      |
| root | ::1            |
|      | localhost      |
| root | localhost      |
| 新用戶 | localhost      |
| root | test     |
+------+----------------+

如果你發(fā)現(xiàn)你的root用戶也同時具有訪問任何庫與任意主機(jī)遠(yuǎn)程地址登錄的權(quán)限,需要根據(jù)自己需求來做限制,為了更高的安全性,我選擇刪除root的權(quán)限

  • 刪除root遠(yuǎn)程登錄訪問新建庫test的權(quán)限
delete from  user where host='%' and user = 'root';
  • 嘗試使用新創(chuàng)建的用戶與root登錄新創(chuàng)建的庫,做一下權(quán)限驗(yàn)證
mysql -u新用戶 -p test
# 可以正常登陸,再嘗試遠(yuǎn)程登錄

3.修改數(shù)據(jù)庫端口

數(shù)據(jù)庫默認(rèn)端口3306,為了加強(qiáng)安全性可以更改一個只有自己知道的端口,降低被破解訪問的風(fēng)險

  • 查看當(dāng)前端口號
MariaDB [(none)]> show global variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
  • 修改數(shù)據(jù)庫配置文件,修改端口
vim /etc/my.cnf
# 主要修改port即可
[mysqld]
port=xxxx
# 若沒有則添加
[client]
port=xxxx
  • 重啟數(shù)據(jù)庫
# 我這里使用的是mariadb
systemctl restart mariadb.service
  • 更改安全組(防火墻)
    如果你的數(shù)據(jù)庫是云服務(wù)器記得開啟新設(shè)置的數(shù)據(jù)庫端口,如果是本地服務(wù)器并且設(shè)置了防火墻等安全規(guī)則也記得放開新端口

4.數(shù)據(jù)庫備份

即使做了所有防護(hù)策略也不能避免意外發(fā)生,數(shù)據(jù)庫備份是我們最后一道可靠的保障.
數(shù)據(jù)庫備份有很多方法,可根據(jù)自己的業(yè)務(wù)需求選擇全量備份,增量備份,冷備份,熱備份等等等等,因?yàn)槲业臄?shù)據(jù)體量很小,只選擇使用shell腳本配合mysqldump命令定時完成全站備份!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容