輕松了解ADO.NET安全性
ADO.NET還是比較常用的,于是我研究了一下ADO.NET,在這里拿出來和大家分享一下,希望對大家有用。當(dāng)設(shè)計(jì)、構(gòu)建及部署應(yīng)用程序時(shí),您必須假定您的應(yīng)用程序?qū)⑹艿焦簟?通常,這些攻擊來自使用運(yùn)行此代碼的用戶的權(quán)限執(zhí)行的惡意代碼, 其他攻擊可能源自被攻擊者利用的善意代碼。
#T#在規(guī)劃安全性時(shí),始終假設(shè)將出現(xiàn)最糟糕的情況。您可以使用的一種措施是:嘗試使用最小特權(quán)來運(yùn)行代碼,在代碼周圍樹立盡可能多的障礙。 最小特權(quán)原則指出,應(yīng)在完成工作所需的最短時(shí)間內(nèi)向所需的最少代碼授予任何給定的特權(quán)。創(chuàng)建安全應(yīng)用程序的最好方法是在開始階段不授予任何權(quán)限,然后對執(zhí)行的特定任務(wù)添加最有限的權(quán)限。 相反,如果開始具有所有權(quán)限而以后拒絕個(gè)別權(quán)限,就會導(dǎo)致難以測試和維護(hù)的不安全應(yīng)用程序,因?yàn)闊o意中授予過多的權(quán)限會造成完全漏洞。
代碼訪問ADO.NET安全性 (CAS)
代碼訪問安全性 (CAS) 是幫助限制代碼對受保護(hù)資源和操作的訪問權(quán)限的一種機(jī)制。 在 .NET Framework 中,CAS 執(zhí)行下列功能:
◆定義權(quán)限和權(quán)限集,它們表示訪問各種系統(tǒng)資源的權(quán)限。
◆使管理員能夠通過將權(quán)限集與代碼組關(guān)聯(lián)來配置安全策略。
◆使代碼能夠請求運(yùn)行所必需的權(quán)限及其他一些有用的權(quán)限,并指定代碼絕對不能擁有哪些權(quán)限。
◆根據(jù)代碼要求的權(quán)限和安全策略允許的操作,向加載的每個(gè)程序集授予權(quán)限。
◆使代碼能夠要求其調(diào)用方擁有特定的權(quán)限。
◆使代碼能夠要求其調(diào)用方擁有數(shù)字簽名,從而只允許特定組織或特定網(wǎng)站的調(diào)用方來調(diào)用受保護(hù)的代碼。
◆通過將調(diào)用堆棧上為每個(gè)調(diào)用方授予的權(quán)限與調(diào)用方必須擁有的權(quán)限相比較,加強(qiáng)在運(yùn)行時(shí)對代碼的限制。
若要將因攻擊成功而導(dǎo)致的損害降到最低,請為您的代碼選擇安全上下文,以便只向資源授予其完成工作所必需的訪問權(quán)限。
數(shù)據(jù)庫ADO.NET安全性
最小特權(quán)原則也適用于數(shù)據(jù)源。 數(shù)據(jù)庫安全性一般準(zhǔn)則包括:
◆使用最低可能的特權(quán)創(chuàng)建帳戶。
◆不允許用戶訪問管理帳戶,只允許運(yùn)行代碼。
◆不要將服務(wù)器端錯誤消息返回到客戶端應(yīng)用程序。
◆驗(yàn)證客戶端和服務(wù)器端的所有輸入。
◆使用參數(shù)化命令,避免動態(tài) SQL 語句。
◆為您使用的數(shù)據(jù)庫啟用安全審核和記錄,以便違反任何安全性時(shí)得到警報(bào)。
SQL Server ADO.NET安全性
提供 SQL Server 安全性和應(yīng)用方案的概述,這些應(yīng)用方案提供用于創(chuàng)建針對 SQL Server 的安全 ADO.NET 應(yīng)用程序的指南。
安全策略和管理
不正確管理代碼訪問安全性 (CAS) 策略可能會導(dǎo)致安全漏洞。 應(yīng)用程序一旦部署,就應(yīng)使用監(jiān)視安全性的技術(shù),因?yàn)閷⒊霈F(xiàn)評估為新威脅的風(fēng)險(xiǎn)。