說明ADO.NET安全性及重要性
本文著重介紹下ADO.NET安全性,ADO.NET安全性由三個高級步驟組成: 了解攻擊者的目的、辨別系統(tǒng)安全性和確定威脅,看完本文你肯定有不少收獲,希望本文能教會你更多東西。
編寫安全 ADO.NET 應用程序不僅僅是避免常見的編碼缺陷(如不驗證用戶輸入)。訪問數(shù)據(jù)的應用程序具有許多潛在的故障點,攻擊者可以利用這些故障點來檢索、操作或損壞敏感數(shù)據(jù)。因此,了解安全性的各個方面(從應用程序設計階段期間的威脅建模過程到應用程序的最終部署和不斷的維護)非常重要。
.NET Framework 提供了很多有用的類、服務和工具,以用于保證數(shù)據(jù)庫應用程序的安全和對其進行管理。公共語言運行庫 (CLR) 提供了供代碼在其中運行的類型安全環(huán)境,以及用于進一步限制托管代碼權限的代碼訪問安全性 (CAS)。遵循安全數(shù)據(jù)訪問編碼慣例可降低由潛在攻擊者造成的損壞。
編寫安全代碼不會阻止在使用非托管資源(如數(shù)據(jù)庫)時自己造成的安全漏洞。多數(shù)服務器數(shù)據(jù)庫(如 SQL Server)擁有其各自的安全系統(tǒng),正確實現(xiàn)這些安全系統(tǒng)可增強安全性。但是,即使是具有可靠安全系統(tǒng)的數(shù)據(jù)源,如果未適當配置,也可能受到攻擊。#t#
保護應用程序的安全是一個持續(xù)的過程。 因為不可能預知將來會出現(xiàn)哪種新的攻擊技術,所以開發(fā)人員永遠都不能保證某一應用程序可以免受所有的攻擊。 僅因為還沒有人發(fā)現(xiàn)(或發(fā)布)系統(tǒng)中的安全性缺陷,也不意味著不存在或可能不存在安全性缺陷。 在項目的設計階段,您需要對安全性進行規(guī)劃,并規(guī)劃如何在應用程序生存期內維護其安全。
在開發(fā)安全應用程序時遇到的最大問題之一是安全通常是事后的補救辦法,即在項目的代碼完成后才想起需要實現(xiàn)某些內容。 因為未考慮如何維護應用程序的安全,所以在開始階段未注重應用程序安全性將導致所開發(fā)的應用程序不安全。
到最后關頭再實現(xiàn)安全性將導致更多 Bug,因為軟件無法承受新的制約,或必須重寫才能容納未預想到的功能。 每行修訂的代碼都可能引入新 Bug。 因此,您在開發(fā)過程的初始階段就應考慮安全性,使得安全性可與新功能的開發(fā)同步進行。
您只有了解系統(tǒng)可能會受到的所有攻擊,才能使系統(tǒng)免受這些攻擊。 評估安全威脅的過程稱為“威脅建?!?,該過程是確定 ADO.NET 應用程序中違反安全性的可能性及后果所必要的。
威脅建模是一種迭代方法,用于評估應用程序中的漏洞,以找到可公開敏感數(shù)據(jù)的最危險的漏洞。 一旦確定了漏洞,您就可以按安全性對其進行排列,并創(chuàng)建一組按優(yōu)先順序排列的措施以應對威脅。