您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何分析MySQL數據庫的Web安全問題,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
數據安全是現在互聯網安全非常重要一個環節。而且一旦數據出現問題是不可逆的,甚至是災難性的。
有一些防護措施應該在前面幾個博文說過了,就不再贅述。比如通過防火墻控制,通過系統的用戶控制,通過Web應用的控制等。
想說的是,任何一個節點都不是單獨存在的。
場景
1、確保應用本身安全。
2、控制系統用戶對數據庫的訪問權限。
3、控制數據庫用戶對數據庫的訪問權限。
4、確保數據庫敏感數據的安全。
5、確保數據庫整個數據的完整性。
6、規范日常運維操作
7、合理的劃分業務。
解決方案
應用安全
刪除默認的數據庫和用戶
mysql初始化后會自動生成空用戶和test庫,這會對數據庫構成威脅,我們全部刪除。
mysql> drop database test; mysql> use mysql; mysql> delete from db; mysql> delete from user where not(host=”localhost” and user=”root”); mysql> flush privileges;
禁止數據庫從本地直接加載內容
在某些情況下,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
控制用戶的權限
這里用戶,指的是數據庫里的用戶。
控制訪問的ip。
只允許信任的ip訪問,其他的ip都應該拒絕。
比如:只允許辦公網絡,還有業務服務器對應的網絡可以訪問。
區分角色
區分角色,給不同的權限。角色的劃分需要根據具體的使用場景。
下面簡單舉例:
1、角色:view。權限:只允許查詢數據,不允許做任何修改。場景:業務正確性驗證時
2、角色:update。權限:允許修改數據,但是不允許修改數據結構。場景:程序運行
3、角色:operate。權限:允許修改表結構,允許新增和修改表,不允許刪除表,不允許刪庫。場景:產品要發布的時候才可以使用,通過升級sql方式執行。
4、.....
加密敏感信息
要使用md5,sha等算法加密。這樣即使數據丟失,也能減少損失。比如:登錄密碼,支付密碼等。
保證數據的完整性
1、解決單點故障。主從,主主。
2、需要備份與還原。
規范日常操作
1、如果沒有特殊需求,應該使用最小的用戶。比如只使用查看的用戶。
2、有需要修改數據或者結構的操作,可以考慮兩人一起。或者可以考慮做成功能,減少人為直接操作數據庫。
3、在測試環境上測試OK,才往正式環境執行。
業務的劃分
少用數據庫
可以通過緩存,靜態化。盡可能少的使用數據庫。能不使用數據庫是最安全。
分庫分表
敏感的數據和常用的數據,***從表的設計上隔離。比如:用戶的詳情信息和支付信息***分開。
優化sql
這個也非常重要,往往就是因為不重要sql的優化,所以數據庫對應的服務器資源吃滿不提供服務。
驗證方法
通過不同的賬號操作,判斷有沒有對應的權限。
上述內容就是如何分析MySQL數據庫的Web安全問題,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。