新聞中心
我們?cè)谝粋€(gè)項(xiàng)目中首要考慮的就安全的問題,這里就我在項(xiàng)目中總結(jié)的一點(diǎn)ADO.NET安全數(shù)據(jù)訪問方面的知識(shí)做一個(gè)詳細(xì)的介紹。編寫安全的 ADO.NET 代碼,必須了解基礎(chǔ)數(shù)據(jù)存儲(chǔ)(即數(shù)據(jù)庫(kù))中提供的安全機(jī)制。您還需要考慮應(yīng)用程序可能包含的其他功能或組件對(duì)安全性的影響。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、成都網(wǎng)站建設(shè)、樂安網(wǎng)絡(luò)推廣、微信小程序定制開發(fā)、樂安網(wǎng)絡(luò)營(yíng)銷、樂安企業(yè)策劃、樂安品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供樂安建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
1.身份驗(yàn)證、授權(quán)和權(quán)限
連接到 Microsoft SQL Server 后,您便可以使用 Windows 身份驗(yàn)證(也稱為集成安全),它使用當(dāng)前活動(dòng) Windows 用戶的標(biāo)識(shí),而不是傳遞用戶 ID 和密碼。由于不會(huì)在連接字符串中公開用戶憑據(jù),因此強(qiáng)烈建議使用 Windows 身份驗(yàn)證。如果無法使用 Windows 身份驗(yàn)證連接到 SQL Server,請(qǐng)考慮使用 SqlConnectionStringBuilder 在運(yùn)行時(shí)創(chuàng)建連接字符串。
#T#用于身份驗(yàn)證的憑據(jù)需要根據(jù)應(yīng)用程序的類型進(jìn)行不同地處理。例如,在 Windows 窗體應(yīng)用程序中,可以提示用戶提供身份驗(yàn)證信息,也可以使用用戶的 Windows 憑據(jù)。但是,Web 應(yīng)用程序通常使用應(yīng)用程序自身提供的憑據(jù)來訪問數(shù)據(jù),而不是使用用戶提供的憑據(jù)。用戶經(jīng)過身份驗(yàn)證后,其操作范圍取決于向他們授予的權(quán)限。始終遵循最小特權(quán)原則,并且僅授予絕對(duì)必需的權(quán)限。
2.參數(shù)化命令和 SQL 注入
使用參數(shù)化命令可幫助抵御 SQL 注入攻擊,這種攻擊的攻擊者會(huì)將命令“注入”SQL 語句,從而危及服務(wù)器的安全。通過確保將從外部源接收的值僅作為值(而不是作為 Transact-SQL 語句的一部分)進(jìn)行傳遞,參數(shù)化命令可抵御 SQL 注入攻擊。這樣,便不會(huì)在數(shù)據(jù)源中執(zhí)行插入到值中的 Transact-SQL 命令。相反,只會(huì)將這些命令作為參數(shù)值來計(jì)算。除具備安全優(yōu)勢(shì)外,參數(shù)化命令還提供一種便捷方法,使用該方法可組織隨 Transact-SQL 語句傳遞或傳遞到存儲(chǔ)過程的值。
3.ADO.NET安全數(shù)據(jù)訪問對(duì)腳本攻擊
腳本攻擊是另一種形式的注入,它使用插入到網(wǎng)頁中的惡意字符。瀏覽器無法驗(yàn)證這些插入字符,并且會(huì)將它們作為頁面的一部分進(jìn)行處理。
4.保護(hù) Microsoft Access 和 Excel 數(shù)據(jù)源
當(dāng)具有最少的安全要求或沒有安全要求時(shí),Microsoft Access 和 Microsoft Excel 可充當(dāng) ADO.NET 應(yīng)用程序的數(shù)據(jù)存儲(chǔ)區(qū)。其安全功能作為一種阻止手段固然有效,但其作用僅限于阻止不了解情況的用戶亂摸亂動(dòng)而已。Access 和 Excel 的物理數(shù)據(jù)文件位于文件系統(tǒng)上,并且注定可供所有用戶訪問。這使得這些文件易受到攻擊,從而導(dǎo)致文件失竊或數(shù)據(jù)丟失,因?yàn)樗丝奢p松復(fù)制或更改這些文件。如果需要強(qiáng)有力的安全措施,請(qǐng)使用 SQL Server 或其他基于服務(wù)器的數(shù)據(jù)庫(kù),這樣便無法從文件系統(tǒng)讀取物理數(shù)據(jù)文件。
5.ADO.NET安全數(shù)據(jù)訪問企業(yè)服務(wù)
COM+ 包含其自己的安全模型,該模型依賴于 Windows NT 帳戶和進(jìn)程/線程模擬。System.EnterpriseServices 命名空間提供的包裝允許 .NET 應(yīng)用程序通過 ServicedComponent 類來集成托管代碼與 COM+ 安全服務(wù)。
6.與非托管代碼交互
.NET Framework 提供與非托管代碼(包括 COM 組件、COM+ 服務(wù)、外部類型庫(kù)及許多操作系統(tǒng)服務(wù))的交互。使用非托管代碼時(shí)會(huì)超出托管代碼的安全邊界。您的代碼和調(diào)用它的任何代碼都必須具有非托管代碼權(quán)限(指定了 UnmanagedCode 標(biāo)志的 SecurityPermission)。非托管代碼會(huì)無意中將安全漏洞引入您的應(yīng)用程序中。因此,除非絕對(duì)必要,否則應(yīng)避免與非托管代碼進(jìn)行交互。
網(wǎng)站題目:總結(jié)ADO.NET安全數(shù)據(jù)訪問技巧
分享鏈接:http://m.fisionsoft.com.cn/article/cccjcdd.html


咨詢
建站咨詢
