新聞中心
這篇文章將為大家詳細講解有關(guān)怎么安全應(yīng)對MySQL攻擊,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
京山ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
面對MySQL的攻擊,管理員應(yīng)當(dāng)盡可能的保證服務(wù)器的安全。下面的文章將向您介紹如何在面對MySQL攻擊時保證安全。
當(dāng)你連接到MySQL服務(wù)器時, 你應(yīng)使用一個密碼。密碼不以明文在上傳輸。客戶端連接序列中的密碼處理在MySQL 4.1.1中已經(jīng)升級,很安全。如果你仍然使用pre-4.1.1-風(fēng)格的密碼,加密算法不如新算法強;通過一些工作,可以竊取客戶端和服務(wù)器之間的通信 的聰明的攻擊者可以破解密碼。如果客戶端和服務(wù)器之間的連接通過不可信任網(wǎng)絡(luò),你應(yīng)使用SSH隧道來加密通信。
有其它信息以文本傳送,可以被可以看到連接的任何人讀取。如果你擔(dān)心這個,你可以使用壓縮協(xié)議來使通信更難以解密。要想使連接更加安全,你應(yīng)使用SSH來獲得加密的MySQL服務(wù)器和MySQL客戶端之間的TCP/IP連接。(注釋:你還可以使用MySQL內(nèi)部OpenSSL支持。)
為了使MySQL系統(tǒng)安全,強烈要求你考慮下列建議:
◆對所有MySQL用戶使用密碼。客戶端程序不需要知道運行它的人員的身份。對于客戶端/服務(wù)器應(yīng)用程序,用戶可以指定客戶端程序的用戶名。例 如,如果other_user沒有密碼,任何人可以簡單地用mysql -u other_user db_name冒充他人調(diào)用mysql程序進行連接,進行MySQL攻擊。如果所有用戶有密碼,使用其它用戶的賬戶進行連接要困難得多。
要想更改用戶的密碼,應(yīng)使用SET PASSWORD語句。還可以直接更新mysql數(shù)據(jù)庫中的user表。例如,要更改所有root用戶的MySQL賬戶的密碼。
以下為引用的內(nèi)容:
shell> mysql -u root
mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd')
-> WHERE User='root';
mysql> FLUSH PRIVILEGES;
絕對不要作為Unix的root用戶運行MySQL服務(wù)器。這樣做非常危險,因為任何具有FILE權(quán)限的用戶能夠用root創(chuàng)建文件(例如,~root/.bashrc)。為了防止,mysqld拒絕用root運行,除非使用--user=root選項明顯指定。
應(yīng)可以(并且應(yīng)該)用普通非特權(quán)用戶運行mysqld。你可以創(chuàng)建獨立的Unix中的mysql賬戶來以便使所有內(nèi)容更加安全。該賬戶只用于管 理MySQL。要想用其它Unix用戶啟動mysqld,增加user選項指定/etc/my.cnf選項文件或服務(wù)器數(shù)據(jù)目錄的my.cnf選項文件中 的[mysqld]組的用戶名。例如:
以下為引用的內(nèi)容:
[mysqld]
user=mysql
該命令使服務(wù)器用指定的用戶來啟動,無論你手動啟動或通過mysqld_safe或mysql.server啟動。
作為其它Unix用戶而不用root運行mysqld,你不需要更改user表中的root用戶名,因為MySQL賬戶的用戶名與Unix賬戶的用戶名無關(guān)。
◆不要允許使用表的符號鏈接。(可以用--skip-symbolic-links選項禁用)。如果你用root運行mysqld則特別重要,因為任何對服務(wù)器的數(shù)據(jù)目錄有寫訪問權(quán)限的人則能夠刪除系統(tǒng)中的任何文件!
◆確保mysqld運行時,只使用對數(shù)據(jù)庫目錄具有讀或?qū)憴?quán)限的Unix用戶來運行。
◆不要將PROCESS或SUPER權(quán)限授給非管理用戶。mysqladmin processlist的輸出顯示出當(dāng)前執(zhí)行的查詢正文,如果另外的用戶發(fā)出一個UPDATE user SET password=PASSWORD('not_secure')查詢,被允許執(zhí)行那個命令的任何用戶可能看得到。
mysqld為有SUPER權(quán)限的用戶專門保留一個額外的連接,因此即使所有普通連接被占用,MySQL root用戶仍可以登錄并檢查服務(wù)器的活動。
可以使用SUPER權(quán)限來終止客戶端連接,通過更改系統(tǒng)變量的值更改服務(wù)的器操作,并控制復(fù)制服務(wù)器,防止MySQL攻擊的發(fā)生。
◆不要向非管理用戶授予FILE權(quán)限。有這權(quán)限的任何用戶能在擁有mysqld守護進程權(quán)限的文件系統(tǒng)那里寫一個文件!為了更加安全,由SELECT ... INTO OUTFILE生成的所有文件對每個人是可寫的,并且你不能覆蓋已經(jīng)存在的文件。
file權(quán)限也可以被用來讀取任何作為運行服務(wù)器的Unix用戶可讀取或訪問的文件。使用該權(quán)限,你可以將任何文件讀入數(shù)據(jù)庫表。這可能被濫用,例如,通過使用LOAD DATA裝載“/etc/passwd”進一個數(shù)據(jù)庫表,然后能用SELECT顯示它。
◆如果你不信任你的DNS,你應(yīng)該在授權(quán)表中使用IP數(shù)字而不是主機名。在任何情況下,你應(yīng)該非常小心地使用包含通配符的主機名來創(chuàng)建授權(quán)表條目,以防MySQL攻擊!
◆如果你想要限制單個賬戶允許的連接數(shù)量,你可以設(shè)置mysqld中的max_user_connections變量來完成。GRANT語句也可以支持資源控制選項來限制服務(wù)器對一個賬戶允許的使用范圍。
關(guān)于“怎么安全應(yīng)對MySQL攻擊”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
網(wǎng)頁題目:怎么安全應(yīng)對MySQL攻擊
網(wǎng)頁地址:http://www.ef60e0e.cn/article/jejjgi.html