SQL Server資料庫安全管理經驗談

iSQlServer發表於2009-02-27

很長時間以前,我聽說在SQL Server上工作要隨時做好出現糟糕情況的心理準備。實際上,為了保護您的軟體以防止惡意攻擊,您最好先嚐試自己攻擊這些軟體,惡意攻擊可能來自懷有不滿情緒的員工、出於經濟目的犯罪活動或者競爭對手在試圖獲取您的使用者列表等等。

您的程式碼可以幫助進行測試:編寫一個儲存過程然後用錯誤的輸入格式來施展進攻,例如,在需要日期的地方,傳遞一個錯誤的日期或一個字串,在需要貨幣格式的地方,輸入一個日期等等。

作為一個資料庫管理員,您應當阻擋各種攻擊,並將這些攻擊方法寫在一個儲存過程或者UDF中,然後對系統進行測試。如果存在安全隱患,那麼將這些問題向前臺軟體的作者進行彙報也是您的職責所在。

沒有意義的輸入應當儘可能地被前臺軟體阻擋在外,錯誤的和惡意的輸入(也就是具有破壞性但並不是完全沒有實意的資訊)可能會通過前臺軟體的檢測,這時,您應當在此處與它們展開戰鬥。

最安全的辦法是強制前臺軟體呼叫儲存過程或者UDF,這樣,SQL Server將會處理通過了前臺軟體檢測的這些有問題的輸入,然後將它們退回,這樣,問題就回到了前臺軟體的開發團隊,您可以將錯誤號碼、您的儲存過程中自定義的文字一同遞交給開發團隊,或者什麼都不必做,就等著錯誤自己浮出水面。

相信我(或者最好不要相信我),總有一天會有人惡意進攻您的資料庫,如果您沒有任何防備,那就等於將資料庫大門的鑰匙拱手相送。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-558071/,如需轉載,請註明出處,否則將追究法律責任。

相關文章