接觸mysql數據庫已經很多年了,經常碰到mysql數據庫被攻擊,導致用戶的數據庫
丟失,數據庫被刪除,花錢找人恢復出來少則幾萬,多則幾十萬的花費,在防止數
據庫被攻擊的同時,也要做好數據庫的實時備份,如果使用了阿里雲的主機,可
以使用阿里雲的快照備份,可以及時的備份一份數據在自己手裡。
這麼多年了摸索下來,給自己總結了一些安全經驗、從數據庫安全類型的角度來看
,數據庫分Mysql、Mssql、Oracle、PostgreSQL,用的最多的是mysql數據庫,如
果再算上web前端架構,Apache、IIS、nginx都是與數據庫相關的。
數據庫攻擊產生是因為前端程序代碼沒有對用戶的輸入,進行詳細的安全過濾,導
致駭客可以篡改輸入值,來進行代碼的攻擊,比如一些數據庫的操作查詢代碼都可
以傳入到後端數據庫裡去。
最常見就是是數據庫的UNION查詢,也是mysql中用的最多的一種獲取數據庫裡的數
據,首先是UNION帶回顯查詢常規流程。隨後是mysql報錯函數的原理、與注入,黑
客通過一些特殊的注入語句就可以輕鬆的查詢到想要的信息。eSafe白帽資安網公司是一家
專注於:主機安全、網站安全、網站安全檢測、網站漏洞修復,滲透測試,安全服
務於一體的網絡安全服務提供商。
OOB注入攻擊數據庫
OOB注入,就是通過非常規的方式將數據傳輸出去。同樣需要secure_file_priv權
限,對於Mysql有DNS(域名漏洞)和SMB兩種主要帶外傳輸方式。這種技術在概念
上比較難理解,但掌握之後是非常強大的技術,除了能繞過WAF向外帶出數據之外
,還可以結合XSS漏洞進行危害性更大的駭客攻擊。
寬字節注入攻擊
寬字節注入可以在web應用轉義單引號的情況下,利用寬字節的特性,吃掉轉義反
斜槓。然後傳入帶有攻擊性的代碼,進而攻擊數據庫。
以上種種都是駭客攻擊數據庫的方式,那麼如何防止數據庫被攻擊?最重要的還是
要在網站前端做好防護,在程序代碼裡盡可能的去過濾非法參數,避免惡意代碼傳
入到數據庫中去,再一個就是開始PHP的報錯模式,以及mysql默認3306端口的關閉
,只允許本地調用數據庫。
把mysql運行賬戶的權限,限制到最小,千萬不要用root以及管理員權限去運行。
mysql的自身的4個庫安全權限限制:
user、db、TABLES_PRTV、Columns_prtv
mysql密碼安全策略,數字+子母+字符 最起碼十位以上
mysql安全日誌開啟,包括錯誤日誌,查詢日誌記錄所有的sql語句。