簡明扼要ADO.NET概述
ADO.NET經(jīng)過長時間的發(fā)展,很多用戶都很了解ADO.NET了,這里我發(fā)表一下個人理解,和大家討論討論。保護應(yīng)用程序的安全是一個持續(xù)的過程。 因為不可能預(yù)知將來會出現(xiàn)哪種新的攻擊技術(shù),所以開發(fā)人員永遠都不能保證某一應(yīng)用程序可以免受所有的攻擊。僅因為還沒有人發(fā)現(xiàn)(或發(fā)布)系統(tǒng)中的安全性缺陷,也不意味著不存在或可能不存在安全性缺陷。在項目的設(shè)計階段,您需要對安全性進行規(guī)劃,并規(guī)劃如何在應(yīng)用程序生存期內(nèi)維護其安全。
ADO.NET概述安全性設(shè)計
在開發(fā)安全應(yīng)用程序時遇到的最大問題之一是安全通常是事后的補救辦法,即在項目的代碼完成后才想起需要實現(xiàn)某些內(nèi)容。 因為未考慮如何維護應(yīng)用程序的安全,所以在開始階段未注重應(yīng)用程序安全性將導(dǎo)致所開發(fā)的應(yīng)用程序不安全。
到最后關(guān)頭再實現(xiàn)安全性將導(dǎo)致更多 Bug,因為軟件無法承受新的制約,或必須重寫才能容納未預(yù)想到的功能。 每行修訂的代碼都可能引入新 Bug。 因此,您在開發(fā)過程的初始階段就應(yīng)考慮安全性,使得安全性可與新功能的開發(fā)同步進行。
ADO.NET概述威脅建模
您只有了解系統(tǒng)可能會受到的所有攻擊,才能使系統(tǒng)免受這些攻擊。 評估安全威脅的過程稱為“威脅建?!?,該過程是確定 ADO.NET 應(yīng)用程序中違反安全性的可能性及后果所必要的。威脅建模由三個高級步驟組成: 了解攻擊者的目的、辨別系統(tǒng)安全性和確定威脅。威脅建模是一種迭代方法,用于評估應(yīng)用程序中的漏洞,以找到可公開敏感數(shù)據(jù)的最危險的漏洞。 一旦確定了漏洞,您就可以按安全性對其進行排列,并創(chuàng)建一組按優(yōu)先順序排列的措施以應(yīng)對威脅。
#T#當設(shè)計、構(gòu)建及部署應(yīng)用程序時,您必須假定您的應(yīng)用程序?qū)⑹艿焦簟?通常,這些攻擊來自使用運行此代碼的用戶的權(quán)限執(zhí)行的惡意代碼, 其他攻擊可能源自被攻擊者利用的善意代碼。 在規(guī)劃安全性時,始終假設(shè)將出現(xiàn)最糟糕的情況。您可以使用的一種措施是:嘗試使用最小特權(quán)來運行代碼,在代碼周圍樹立盡可能多的障礙。 最小特權(quán)原則指出,應(yīng)在完成工作所需的最短時間內(nèi)向所需的最少代碼授予任何給定的特權(quán)。
創(chuàng)建安全應(yīng)用程序的最好方法是在開始階段不授予任何權(quán)限,然后對執(zhí)行的特定任務(wù)添加最有限的權(quán)限。 相反,如果開始具有所有權(quán)限而以后拒絕個別權(quán)限,就會導(dǎo)致難以測試和維護的不安全應(yīng)用程序,因為無意中授予過多的權(quán)限會造成完全漏洞。
ADO.NET概述代碼訪問安全性 (CAS)
代碼訪問安全性 (CAS) 是幫助限制代碼對受保護資源和操作的訪問權(quán)限的一種機制。 在 .NET Framework 中,CAS 執(zhí)行下列功能:
◆定義權(quán)限和權(quán)限集,它們表示訪問各種系統(tǒng)資源的權(quán)限。
◆使管理員能夠通過將權(quán)限集與代碼組關(guān)聯(lián)來配置安全策略。
◆使代碼能夠請求運行所必需的權(quán)限及其他一些有用的權(quán)限,并指定代碼絕對不能擁有哪些權(quán)限。
◆根據(jù)代碼要求的權(quán)限和安全策略允許的操作,向加載的每個程序集授予權(quán)限。
◆使代碼能夠要求其調(diào)用方擁有特定的權(quán)限。
◆使代碼能夠要求其調(diào)用方擁有數(shù)字簽名,從而只允許特定組織或特定網(wǎng)站的調(diào)用方來調(diào)用受保護的代碼。
◆通過將調(diào)用堆棧上為每個調(diào)用方授予的權(quán)限與調(diào)用方必須擁有的權(quán)限相比較,加強在運行時對代碼的限制。
若要將因攻擊成功而導(dǎo)致的損害降到最低,請為您的代碼選擇安全上下文,以便只向資源授予其完成工作所必需的訪問權(quán)限。