sql和數據庫的安全

1.防止sql注入,對特殊字符進行轉譯與過濾,使用sql語句綁定變量
    執行查詢的時候 sql會變成,String sql = "select * from tb_name where name= '' and passwd = '' or '1' = '1',
    1=1是永遠成立的,所以,前面的條件已經不起作用,我們使用預編譯語句執行者就可以避免這個問題,
    prepareStatement將sql預編譯,傳參數的時候,不會改變sql語句結構,就可以避免注入。
2.最小用戶權限設置,最好不要使用root用戶連接數據庫

3.當sql運行出錯的時候,不要將錯誤信息全部顯示給用戶

數據安全 
1.使用代理保護數據庫免受攻擊
    數據庫代理(或網關代理)位於應用程序和數據庫之間,接受來自應用程序的連接請求,然後代表這些應用程序連接到數據庫。
    智能數據庫代理(如我們自己使用的MaxScale)提供了過濾器和加載模塊,以提供安全性、可靠性、可伸縮性和性能優勢。
    MaxScale數據庫防火牆過濾器通過過濾器解析發起的查詢,如果發送過來的查詢不符合已經提前設置的查詢類型的白名單,那麼過濾器就會自動阻止。
    例如,給定的連接只能執行更新和插入,而另一個連接必須匹配某些正則表達式,等等。
    像MaxScale這樣的代理也可以保護數據庫不受DDoS的攻擊:當過多的連接直接進入到數據庫服務器時,它就會超載。但是代理會吸收一些負載來限制這種攻擊的影響。
2.建立審計和健壯的日誌記錄
3.實行嚴格的用戶帳戶管理
4.保證數據庫軟件和操作系統是最新的
5.加密敏感數據,無論是在應用程序中,還是在數據傳輸中,甚至處於空閒時

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章