成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

PHP安全:MySQL的使用安全

數(shù)據(jù)庫 MySQL
在與PHP結(jié)合應用方面,MySQL是最好的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一。MySQL使用不當,常常會引起致命的安全問題。

[[350837]]

 MySQL 基礎知識

MySQL是一個流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(Relational Database Management System,RDMS),在與PHP結(jié)合應用方面,MySQL是最好的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一。MySQL使用不當,常常會引起致命的安全問題。

1、運行安全

為了防止攻擊者通過MySQL漏洞越權(quán)獲取更高的權(quán)限,不要使用系統(tǒng)root用戶運行MySQL服務器。mysqld默認拒絕使用root運行,如果對mysqld服務需要指定用戶進行運行,應該使用普通非特權(quán)用戶運行mysqld,同時為數(shù)據(jù)庫建立獨立的Linux中的MySQL賬戶,該賬戶只用于管理和運行MySQL。

在MySQL配置/etc/my.cnf文件中指定執(zhí)行賬戶。 

  1. vim /etc/my.cnf  
  2. [mysqld]  
  3. user=mysql 

這個配置使服務器用指定的用戶來啟動,無論是手動啟動還是通過mysqld_safe或mysql.server啟動,都能確保使用MySQL的身份。也可以在啟動參數(shù)上進行配置,加上user參數(shù)。 

  1. /usr/local/mysql/bin/mysqld_safe --user=mysql & 

默認的MySQL安裝在/usr/local/mysql,對應的默認數(shù)據(jù)庫文件在/usr/local/mysql/var目錄下,必須保證該目錄不能讓未經(jīng)授權(quán)的用戶訪問后把數(shù)據(jù)庫打包復制走,所以要限制對該目錄的訪問。mysqld運行時,只使用對數(shù)據(jù)庫目錄具有讀或?qū)憴?quán)限的Linux用戶來運行。

MySQL主目錄只允許root用戶進行訪問。 

  1. chown -R root /usr/local/mysql/ 

數(shù)據(jù)庫目錄只允許MySQL用戶進行訪問。 

  1. chown -R mysql.mysql /usr/local/mysql/var 

2、密碼安全

默認安裝的MySQL的root用戶密碼是空密碼,為了安全起見,必須修改為強密碼,即至少8位,由字母、數(shù)字和符號組成的不規(guī)律密碼。使用MySQL自帶的mysqladmin命令修改root密碼。

  1. mysqladmin -u root password "new-password" //使用mysqladmin修改密碼 

同時可以使用下面的命令登錄數(shù)據(jù)庫對密碼進行修改。 

  1. mysql>use mysql  
  2. mysql>update user set pas sword=pas sword('new-password') where  
  3. user='root' 
  4. mysql>flush privileges; // 強制刷新內(nèi)存授權(quán)表,否則使用的還是在內(nèi)存緩沖的口令 

3、賬號安全

系統(tǒng)MySQL的默認管理員名稱是root,而一般情況下,數(shù)據(jù)庫管理員都沒有進行修改,這在一定程度上為系統(tǒng)用戶密碼暴力破解的惡意攻擊行為提供了便利,應該修改為復雜的用戶名,加強賬號的安全,同時不要使用admin或者administrator,因為它們也在易猜解的用戶字典中。 

  1. mysql>update user set user="new-root-name" where  
  2. user="root" 
  3. mysql>flush privileges; // 強制刷新內(nèi)存授權(quán)表,否則使用的還是在內(nèi)存緩沖的口令 

需要正確地給用戶分配權(quán)限,不要將全部權(quán)限分配給普通用戶,有選擇性地分配讀寫權(quán)限,如只分配查詢權(quán)限給用戶。 

  1. mysql>grant SELECT on db.table to username@'localhost' 

不要將with grant option授權(quán)給普通用戶,防止普通用戶將權(quán)限授予他人,造成管理混亂。

表1是常用的權(quán)限及說明。

表1  常用權(quán)限及說明

4、數(shù)據(jù)庫安全

默認MySQL安裝初始化后會自動生成空用戶和test庫,進行安裝測試,這會對數(shù)據(jù)庫的安全構(gòu)成威脅,有必要全部刪除,最后的狀態(tài)只保留單個root即可。當然,以后可以根據(jù)需要增加用戶和數(shù)據(jù)庫。 

  1. mysql>show databases;  
  2. mysql>drop database test; // 刪除數(shù)據(jù)庫test  
  3. use mysql;  
  4. delete from db; // 刪除存放數(shù)據(jù)庫的表信息,因為還沒有數(shù)據(jù)庫信息  
  5. mysql>delete from user where not (user='root'); // 刪除初始非root的用戶  
  6. mysql>delete from user where user='root' and password=; // 刪除空密碼的root  
  7. Query OK, 2 rows affected(0.00 sec)  
  8. mysql>flush privileges; // 強制刷新內(nèi)存授權(quán)表 

5、限制非授權(quán)IP訪問

如果是單機運行MySQL,推薦開啟skip-networking,可以徹底關(guān)閉MySQL的TCP/IP連接方式。 

  1. # my.ini  
  2. skip-networking 

如果是固定IP訪問MySQL,可以在配置文件中增加bind-address=IP,前提是關(guān)閉skip-networking。

  1. bind-address=10.10.1.1 

6、文件讀取安全

在MySQL中,使用load data local infile命令提供對本地文件的讀取功能。在5.0版本中,該選項是默認打開的,該操作會利用MySQL把本地文件讀到數(shù)據(jù)庫中,然后攻擊者就可以非法獲取敏感信息。假如不需要讀取本地文件,應將其關(guān)閉。

網(wǎng)絡上流傳的一些攻擊方法中就有用到load data local infile的,同時它也是很多新發(fā)現(xiàn)的SQL Injection攻擊利用的手段。攻擊者還能通過使用load data local infile裝載“/etc/passwd”進一個數(shù)據(jù)庫表,然后用SELECT顯示它,這個操作對服務器的安全來說是致命的。

可以在my.cnf中添加local-infile=0參數(shù)。 

  1. vim /etc/my.cnf  
  2. [mysqld]  
  3. set-variable=local-infile = 0 

或者在MySQL啟動時添加local-infile=0參數(shù)。

  1. /usr/local/mysql/bin/mysqld_safe --user=mysql --local-infile=0 & 

7、常用安全選項

下面是一些MySQL自己提供的安全選項,在使用MySQL服務時可以根據(jù)自己的需要進行靈活的配置。

  1. --allow-suspicious-udfs 

該選項控制是否可以載入主函數(shù)只有xxx符號的用戶定義函數(shù),如xxx_init()、xxx_deinit()、xxx_reset()、xxx_clear()、xxx_add()等函數(shù)。默認情況下,該選項關(guān)閉,并且只能載入至少有輔助符的UDF。這樣可以防止從未包含合法UDF的共享對象文件載入函數(shù)。

  1. --local-infile[={0|1}] 

如果用--local-infile=0啟動服務器,則客戶端不能使用LOCAL IN LOAD DATA語句。 

  1. --old-passwords 

強制服務器為新密碼生成短(pre-4.1)散列密碼。當服務器必須支持舊版本客戶端程序時,這對于保證兼容性很有作用。 

  1. (OBSOLETE) --safe-show-database 

在以前版本的MySQL中,該選項使SHOW DATABASES語句只顯示用戶具有部分權(quán)限的數(shù)據(jù)庫名。在MySQL 5.1中,該選項不再作為現(xiàn)在的默認行為使用,有一個SHOW DATABASES權(quán)限可以用來控制每個賬戶對數(shù)據(jù)庫名的訪問。 

  1. --safe-user-create 

如果啟用,用戶不能使用GRANT語句創(chuàng)建新用戶,除非用戶有mysql.user表的INSERT權(quán)限。如果要讓用戶具有授權(quán)權(quán)限來創(chuàng)建新用戶,應給用戶授予下面的權(quán)限。 

  1. mysql> GRANT INSERT(user) ON mysql.user TO'user_name'@'host_name'; 

這樣確保用戶不能直接更改權(quán)限列,必須使用GRANT語句給其他用戶授予該權(quán)限。

  1. --secure-auth 

不允許鑒定有舊(pre-4.1)密碼的賬戶。 

  1. --skip-grant-tables 

這個選項導致服務器根本不使用權(quán)限系統(tǒng),從而使得每個人都有權(quán)完全訪問所有數(shù)據(jù)庫!(通過執(zhí)行mysqladmin flush-privileges或mysqladmin eload命令,或執(zhí)行FLUSH PRIVILEGES語句,可以告訴一個正在運行的服務器再次開始使用授權(quán)表。) 

  1. --skip-name-resolve 

主機名不被解析。所有在授權(quán)表的Host的列值必須是IP號或localhost。 

  1. --skip-networking 

在網(wǎng)絡上不允許TCP/IP連接。所有到mysqld的連接必須經(jīng)由Unix套接字進行。 

  1. --skip-show-database 

使用該選項,只允許有SHOW DATABASES權(quán)限的用戶執(zhí)行SHOW DATABASES語句,該語句顯示所有數(shù)據(jù)庫名。不使用該選項,允許所有用戶執(zhí)行SHOW DATABASES,但只顯示用戶有SHOW DATABASES權(quán)限或部分數(shù)據(jù)庫權(quán)限的數(shù)據(jù)庫名。請注意,全局權(quán)限指數(shù)據(jù)庫的權(quán)限。

8、數(shù)據(jù)安全

在生產(chǎn)環(huán)境中,數(shù)據(jù)庫可能會遭遇各種各樣的不測從而導致數(shù)據(jù)丟失,如硬件故障、軟件故障、自然災害、惡意攻擊者攻擊、誤操作等都會對數(shù)據(jù)造成損壞或丟失。為了在數(shù)據(jù)丟失之后能夠及時恢復數(shù)據(jù),需要定期對數(shù)據(jù)進行備份。

備份數(shù)據(jù)的策略要根據(jù)不同的業(yè)務場景進行定制,大致有幾個參考數(shù)值,可以根據(jù)這些數(shù)值來定制符合特定環(huán)境中的數(shù)據(jù)備份策略。

(1)能夠容忍丟失多少數(shù)據(jù)。

(2)恢復數(shù)據(jù)需要多長時間。

(3)需要恢復哪些數(shù)據(jù)。

根據(jù)業(yè)務場景的需要來選擇備份方式是完整備份、增量備份還是差異備份。 

 

責任編輯:龐桂玉 來源: 計算機與網(wǎng)絡安全
相關(guān)推薦

2020-11-09 15:49:38

PHPMemcache網(wǎng)絡安全

2020-08-19 15:30:04

PHP網(wǎng)絡安全代碼

2020-10-14 11:30:10

PHP網(wǎng)絡安全加密

2018-10-06 05:00:53

2016-10-10 00:18:27

2009-02-23 09:11:21

2010-07-15 15:49:53

PHP網(wǎng)站安全

2010-05-19 18:42:23

2011-09-14 10:38:39

2020-10-24 14:10:26

PHP網(wǎng)絡安全人機識別

2013-06-05 09:51:04

2011-05-25 13:17:22

MySQL

2009-12-02 09:21:04

PHP數(shù)據(jù)過濾

2009-11-24 13:17:16

PHP安全驗證數(shù)據(jù)

2009-07-03 14:31:51

2011-07-14 09:38:13

2010-08-19 10:21:09

2018-01-31 15:35:40

2009-12-11 15:28:02

PHP安全防護

2009-12-08 09:51:10

PHP intval函
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 成人在线免费观看 | 日日噜噜噜夜夜爽爽狠狠视频97 | 欧美电影免费观看 | 国产精品一区二区三区在线 | 久久久久9999 | 亚洲一区二区精品视频 | 日韩高清一区二区 | 国产成人影院 | 亚洲国产一区在线 | 国产99小视频 | 亚洲a视频| 国产亚洲精品久久久久动 | 日韩精品一区二区三区 | 久久久久久国产精品久久 | 日韩精品成人免费观看视频 | 毛片免费观看 | 另类a v| 福利视频日韩 | 久久久91| 99精品视频在线 | 在线视频亚洲 | 天啪 | 免费h视频 | 日韩国产一区二区 | 亚洲欧洲日本国产 | 欧美激情第一区 | 999久久久久久久久6666 | 中文字幕在线一区二区三区 | 国产成人99av超碰超爽 | 久久久久久国产一区二区三区 | 羞羞视频免费在线观看 | 亚洲精品免费视频 | av香港经典三级级 在线 | 久久精品国产清自在天天线 | 国产福利资源在线 | 久久精品男人的天堂 | 老司机午夜性大片 | 国内精品久久久久久影视8 最新黄色在线观看 | 日韩av黄色 | 中文字幕二区三区 | 亚洲精品久久久久久久久久久久久 |