日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

為了更有效地改進root用戶的安全性,另一種好方法是為其改名。為此,你必須更新表用戶中的MySQL數據庫。在MySQL控制臺中進行操作:

> USE mysql;

> Update user SET user="another_username" Where user="root";

> FLUSH PRIVILEGES;

然后,通過linux訪問MySQL控制臺就要使用新用戶名了:

$ mysql -u another_username -p

5、移除測試(test)數據庫

在默認安裝的MySQL中,匿名用戶可以訪問test數據庫。我們可以移除任何無用的數據庫,以避免在不可預料的情況下訪問了數據庫。因而,在MySQL控制臺中,執行:

> Drop DATABASE test;

6、禁用LOCAL INFILE

另一項改變是禁用”LOAD DATA LOCAL INFILE”命令,這有助于防止非授權用戶訪問本地文件。在php應用程序中發現有新的SQL注入漏洞時,這樣做尤其重要。

此外,在某些情況下,LOCAL INFILE命令可被用于訪問操作系統上的其它文件(如/etc/passwd),應使用下現的命令:

mysql> LOAD DATA LOCAL INFILE '/etc/passwd' INTO TABLE table1

更簡單的方法是:

mysql> Select load_file("/etc/passwd")

為禁用LOCAL INFILE命令,應當在MySQL配置文件的[mysqld]部分增加下面的參數:

set-variable=local-infile=0

7、移除匿名賬戶和廢棄的賬戶

有些MySQL數據庫的匿名用戶的口令為空。因而,任何人都可以連接到這些數據庫??梢杂孟旅娴拿钸M行檢查:

mysql> Select * From mysql.user Where user="";

在安全的系統中,不會返回什么信息。另一種方法是:

mysql> SHOW GRANTS FOR ''@'localhost';

mysql> SHOW GRANTS FOR ''@'myhost';

如果grants存在,那么任何人都可以訪問數據庫,至少可以使用默認的數據庫“test”。其檢查方法如下:

shell> mysql -u blablabla

如果要移除賬戶,則執行命令:

mysql> Drop USER "";

從MySQL的5.0版開始支持Drop USER命令。如果你使用的老版本的MySQL,你可以像下面這樣移除賬戶:

mysql> use mysql;

mysql> Delete From user Where user="";

mysql> flush privileges;

8、降低系統特權

常見的數據庫安全建議都有“降低給各方的特權”這一說法。對于MySQL也是如此。一般情況下,開發人員會使用最大的許可,不像安全管理一樣考慮許可原則,而這樣做會將數據庫暴露在巨大的風險中。

為保護數據庫,務必保證真正存儲MySQL數據庫的文件目錄是由”mysql” 用戶和” mysql”組所擁有的。

shell>ls -l /var/lib/mysql

此外,還要確保僅有用戶”mysql”和root用戶可以訪問/var/lib/mysql目錄。

Mysql的二進制文件存在于/usr/bin/目錄中,它應當由root用戶或特定的”mysql”用戶所擁有。對這些文件,其它用戶不應當擁有“寫”的訪問權:

shell>ls -l /usr/bin/my*

9、降低用戶的數據庫特權

有些應用程序是通過一個特定數據庫表的用戶名和口令連接到MySQL的,安全人員不應當給予這個用戶完全的訪問權。

如果攻擊者獲得了這個擁有完全訪問權的用戶,他也就擁有了所有的數據庫。查看一個用戶許可的方法是在MySQL控制臺中使用命令SHOW GRANT

>SHOW GRANTS FOR 'user'@'localhost';

為定義用戶的訪問權,使用GRANT命令。在下面的例子中,user1僅能從dianshang數據庫的billing表中選擇:

> GRANT Select ON billing.dianshang TO 'user1'@'localhost';

> FLUSH PRIVILEGES;

如此一來,user1用戶就無法改變數據庫中這個表和其它表的任何數據。

另一方面,如果你要從一個用戶移除訪問權,就應使用一個與GRANT命令類似的REVOKE命令:

> REVOKE Select ON billing.ecommerce From 'user1'@'localhost';

> FLUSH PRIVILEGES;

10、移除和禁用.mysql_history文件

在用戶訪問MySQL控制臺時,所有的命令歷史都被記錄在~/.mysql_history中。如果攻擊者訪問這個文件,他就可以知道數據庫的結構。

$ cat ~/.mysql_history

為了移除和禁用這個文件,應將日志發送到/dev/null。

$export MYSQL_HISTFILE=/dev/null

上述命令使所有的日志文件都定向到/dev/null,你應當從home文件夾移除.mysql_history:$ rm ~/.mysql_history,并創建一個到/dev/null的符號鏈接。

11、安全補丁

務必保持數據庫為最新版本。因為攻擊者可以利用上一個版本的已知漏洞來訪問企業的數據庫。

12、啟用日志

如果你的數據庫服務器并不執行任何查詢,建議你啟用跟蹤記錄,你可以通過在/etc/my.cnf文件的[Mysql]部分添加:log =/var/log/mylogfile。

對于生產環境中任務繁重的MySQL數據庫,因為這會引起服務器的高昂成本。

此外,還要保證只有root和mysql可以訪問這些日志文件。

錯誤日志

務必確保只有root和mysql可以訪問hostname.err日志文件。該文件存放在mysql數據歷史中。該文件包含著非常敏感的信息,如口令、地址、表名、存儲過程名、代碼等,它可被用于信息收集,并且在某些情況下,還可以向攻擊者提供利用數據庫漏洞的信息。攻擊者還可以知道安裝數據庫的機器或內部的數據。

MySQL日志

確保只有root和mysql可以訪問logfileXY日志文件,此文件存放在mysql的歷史目錄中。

13、改變root目錄

Unix操作系統中的chroot可以改變當前正在運行的進程及其子進程的root目錄。重新獲得另一個目錄root權限的程序無法訪問或命名此目錄之外的文件,此目錄被稱為“chroot監獄”。

通過利用chroot環境,你可以限制MySQL進程及其子進程的寫操作,增加服務器的安全性。

你要保證chroot環境的一個專用目錄,如/chroot/mysql。此外,為了方便利用數據庫的管理工具,你可以在MySQL配置文件的[client]部分改變下面的參數:

[client]

socket = /chroot/mysql/tmp/mysql.sock

14、禁用LOCAL INFILE命令

LOAD DATA LOCAL INFILE可以從文件系統中讀取文件,并顯示在屏幕中或保存在數據庫中。如果攻擊者能夠從應用程序找到SQL注入漏洞,這個命令就相當危險了。下面的命令可以從MySQL控制臺進行操作:

> Select LOAD_FILE("/etc/passwd");

該命令列示了所有的用戶。解決此問題的最佳方法是在MySQL配置中禁用它,在centos中找到/etc/my.cnf或在Ubuntu中找到/etc/mysql/my.cnf,在[mysqld]部分增加下面一行:set-variable=local-infile=0。搞定。

當然,唇亡齒寒,保護服務器的安全對于保障MySQL數據庫的安全也是至關重要的。服務器的安全對于數據庫來說可謂生死攸關。

分享到:
標簽:mysql
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定