開發(fā)人員使數(shù)據(jù)庫面臨十大方面風險
過于相信輸入方法開發(fā)人員將數(shù)據(jù)庫置于風險之中的一種重要方法是,使其應用程序遭受SQL注入攻擊。當開發(fā)人員過于相信用戶輸入時,就往往會出現(xiàn)SQL注入漏洞。解決這種問題的最好方法之一就是使用參數(shù)化查詢。參
過于相信輸入方法
開發(fā)人員將數(shù)據(jù)庫置于風險之中的一種重要方法是,使其應用程序遭受SQL注入攻擊。當開發(fā)人員過于相信用戶輸入時,就往往會出現(xiàn)SQL注入漏洞。解決這種問題的最好方法之一就是使用參數(shù)化查詢。參數(shù)化查詢可以防止攻擊者改變查詢中的邏輯或代碼,并阻止大多數(shù)SQL注入攻擊。此外,還要對用戶輸入進行凈化和驗證,因為有時參數(shù)化并不可行。
數(shù)據(jù)庫錯誤消息顯示給終端用戶
在應用程序的SQL查詢出現(xiàn)問題時,如果開發(fā)人員允許彈出特定的錯誤消息,這也許有助于診斷,但這也向攻擊者提供了一個探查后端數(shù)據(jù)庫的內(nèi)部工作機制的很好途徑。開發(fā)者應當在頁面顯示一般性的錯誤消息而非特定消息。
輕率地對待口令
許多開發(fā)者用多種不安全的方法來輕率地對待用戶口令。例如,他們可能將口令硬編碼到應用程序中或存放到純文本中。開發(fā)人員應當將口令進行哈希并加鹽,同時在應用程序中構建強健的口令認證。
使所有的連接都是“超級”的
許多開發(fā)者通過“根”或其它一些超級用戶賬戶來將應用程序連接到數(shù)據(jù)庫中,從而將數(shù)據(jù)庫置于風險之中。所有的應用程序都應當使用最少特權的用戶憑證連接到數(shù)據(jù)庫。
相信存儲過程是SQL注入的解決之道
許多開發(fā)人員相信,存儲過程是防止SQL注入的一種可靠方法。事實上,如果存儲過程自身的代碼中包含漏洞,或者如果存儲過程被以一種不安全的方式調(diào)用,它并不能防止SQL注入。
將調(diào)試代碼留放到生產(chǎn)環(huán)境中
開發(fā)人員必須在將程序投放到生產(chǎn)環(huán)境中之前,清理其代碼,以免打開數(shù)據(jù)庫的后門。忘記在生產(chǎn)環(huán)境中清除這種調(diào)試代碼是愚蠢的,但也是很常見的錯誤。
劣質加密
錯誤地使用加密會給企業(yè)帶來一種虛假的安全感。開發(fā)人員應當謹慎地對待其加密技術方面的技能和技巧,并選擇合適的加密方法。
盲目相信第三方代碼
開發(fā)人員不能在測試代碼問題上抄近路,以確保所復制的代碼不會給應用程序帶來易受攻擊的漏洞。開發(fā)人員需要為整個應用程序的威脅分析負責,并使用最新的開發(fā)框架。
輕率地實施REST架構
開發(fā)人員應當為一系列抽象的應用程序的特定資源類型和資源的適當操作設計REST接口,而不是把接口直接設計到物理的數(shù)據(jù)表和非特殊操作。
隨處亂放備份的數(shù)據(jù)庫副本
開發(fā)環(huán)境必須小心地遵循生產(chǎn)環(huán)境中的安全標準,包括對備份數(shù)據(jù)庫副本的安全措施。安全策略應當為數(shù)據(jù)的所有副本負責,而不僅僅是在線副本。