溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么安全應(yīng)對(duì)MySQL攻擊

發(fā)布時(shí)間:2022-01-14 16:11:58 來(lái)源:億速云 閱讀:251 作者:小新 欄目:數(shù)據(jù)庫(kù)

這篇文章將為大家詳細(xì)講解有關(guān)怎么安全應(yīng)對(duì)MySQL攻擊,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。


  面對(duì)MySQL的攻擊,管理員應(yīng)當(dāng)盡可能的保證服務(wù)器的安全。下面的文章將向您介紹如何在面對(duì)MySQL攻擊時(shí)保證安全。
  當(dāng)你連接到MySQL服務(wù)器時(shí), 你應(yīng)使用一個(gè)密碼。密碼不以明文在上傳輸??蛻舳诉B接序列中的密碼處理在MySQL 4.1.1中已經(jīng)升級(jí),很安全。如果你仍然使用pre-4.1.1-風(fēng)格的密碼,加密算法不如新算法強(qiáng);通過(guò)一些工作,可以竊取客戶端和服務(wù)器之間的通信 的聰明的攻擊者可以破解密碼。如果客戶端和服務(wù)器之間的連接通過(guò)不可信任網(wǎng)絡(luò),你應(yīng)使用SSH隧道來(lái)加密通信。
  有其它信息以文本傳送,可以被可以看到連接的任何人讀取。如果你擔(dān)心這個(gè),你可以使用壓縮協(xié)議來(lái)使通信更難以解密。要想使連接更加安全,你應(yīng)使用SSH來(lái)獲得加密的MySQL服務(wù)器和MySQL客戶端之間的TCP/IP連接。(注釋:你還可以使用MySQL內(nèi)部OpenSSL支持。)
  為了使MySQL系統(tǒng)安全,強(qiáng)烈要求你考慮下列建議:
  ◆對(duì)所有MySQL用戶使用密碼??蛻舳顺绦虿恍枰肋\(yùn)行它的人員的身份。對(duì)于客戶端/服務(wù)器應(yīng)用程序,用戶可以指定客戶端程序的用戶名。例 如,如果other_user沒有密碼,任何人可以簡(jiǎn)單地用mysql -u other_user db_name冒充他人調(diào)用mysql程序進(jìn)行連接,進(jìn)行MySQL攻擊。如果所有用戶有密碼,使用其它用戶的賬戶進(jìn)行連接要困難得多。
  要想更改用戶的密碼,應(yīng)使用SET PASSWORD語(yǔ)句。還可以直接更新mysql數(shù)據(jù)庫(kù)中的user表。例如,要更改所有root用戶的MySQL賬戶的密碼。
  以下為引用的內(nèi)容:
  shell> mysql -u root
  mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd')
  -> WHERE User='root';
  mysql> FLUSH PRIVILEGES;
  絕對(duì)不要作為Unix的root用戶運(yùn)行MySQL服務(wù)器。這樣做非常危險(xiǎn),因?yàn)槿魏尉哂蠪ILE權(quán)限的用戶能夠用root創(chuàng)建文件(例如,~root/.bashrc)。為了防止,mysqld拒絕用root運(yùn)行,除非使用--user=root選項(xiàng)明顯指定。
  應(yīng)可以(并且應(yīng)該)用普通非特權(quán)用戶運(yùn)行mysqld。你可以創(chuàng)建獨(dú)立的Unix中的mysql賬戶來(lái)以便使所有內(nèi)容更加安全。該賬戶只用于管 理MySQL。要想用其它Unix用戶啟動(dòng)mysqld,增加user選項(xiàng)指定/etc/my.cnf選項(xiàng)文件或服務(wù)器數(shù)據(jù)目錄的my.cnf選項(xiàng)文件中 的[mysqld]組的用戶名。例如:
  以下為引用的內(nèi)容:
  [mysqld]
  user=mysql
  該命令使服務(wù)器用指定的用戶來(lái)啟動(dòng),無(wú)論你手動(dòng)啟動(dòng)或通過(guò)mysqld_safe或mysql.server啟動(dòng)。
  作為其它Unix用戶而不用root運(yùn)行mysqld,你不需要更改user表中的root用戶名,因?yàn)镸ySQL賬戶的用戶名與Unix賬戶的用戶名無(wú)關(guān)。
  ◆不要允許使用表的符號(hào)鏈接。(可以用--skip-symbolic-links選項(xiàng)禁用)。如果你用root運(yùn)行mysqld則特別重要,因?yàn)槿魏螌?duì)服務(wù)器的數(shù)據(jù)目錄有寫訪問權(quán)限的人則能夠刪除系統(tǒng)中的任何文件!
  ◆確保mysqld運(yùn)行時(shí),只使用對(duì)數(shù)據(jù)庫(kù)目錄具有讀或?qū)憴?quán)限的Unix用戶來(lái)運(yùn)行。
  ◆不要將PROCESS或SUPER權(quán)限授給非管理用戶。mysqladmin processlist的輸出顯示出當(dāng)前執(zhí)行的查詢正文,如果另外的用戶發(fā)出一個(gè)UPDATE user SET password=PASSWORD('not_secure')查詢,被允許執(zhí)行那個(gè)命令的任何用戶可能看得到。
  mysqld為有SUPER權(quán)限的用戶專門保留一個(gè)額外的連接,因此即使所有普通連接被占用,MySQL root用戶仍可以登錄并檢查服務(wù)器的活動(dòng)。
  可以使用SUPER權(quán)限來(lái)終止客戶端連接,通過(guò)更改系統(tǒng)變量的值更改服務(wù)的器操作,并控制復(fù)制服務(wù)器,防止MySQL攻擊的發(fā)生。
  ◆不要向非管理用戶授予FILE權(quán)限。有這權(quán)限的任何用戶能在擁有mysqld守護(hù)進(jìn)程權(quán)限的文件系統(tǒng)那里寫一個(gè)文件!為了更加安全,由SELECT ... INTO OUTFILE生成的所有文件對(duì)每個(gè)人是可寫的,并且你不能覆蓋已經(jīng)存在的文件。
  file權(quán)限也可以被用來(lái)讀取任何作為運(yùn)行服務(wù)器的Unix用戶可讀取或訪問的文件。使用該權(quán)限,你可以將任何文件讀入數(shù)據(jù)庫(kù)表。這可能被濫用,例如,通過(guò)使用LOAD DATA裝載“/etc/passwd”進(jìn)一個(gè)數(shù)據(jù)庫(kù)表,然后能用SELECT顯示它。
  ◆如果你不信任你的DNS,你應(yīng)該在授權(quán)表中使用IP數(shù)字而不是主機(jī)名。在任何情況下,你應(yīng)該非常小心地使用包含通配符的主機(jī)名來(lái)創(chuàng)建授權(quán)表?xiàng)l目,以防MySQL攻擊!
  ◆如果你想要限制單個(gè)賬戶允許的連接數(shù)量,你可以設(shè)置mysqld中的max_user_connections變量來(lái)完成。GRANT語(yǔ)句也可以支持資源控制選項(xiàng)來(lái)限制服務(wù)器對(duì)一個(gè)賬戶允許的使用范圍。

關(guān)于“怎么安全應(yīng)對(duì)MySQL攻擊”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI