創建ADO.NET連接相關使用
對于ADO.NET連接相關措施,這些攻擊來自使用運行此代碼的用戶的權限執行的惡意代碼, 其他攻擊可能源自被攻擊者利用的善意代碼。 在規劃安全性時,始終假設將出現最糟糕的情況。
您可以使用的一種措施是:嘗試使用最小特權來運行代碼,在代碼周圍樹立盡可能多的障礙。 最小特權原則指出,ADO.NET連接應在完成工作所需的最短時間內向所需的最少代碼授予任何給定的特權。
ADO.NET連接創建安全應用程序的最好方法是在開始階段不授予任何權限,然后對執行的特定任務添加最有限的權限。 相反,ADO.NET連接如果開始具有所有權限而以后拒絕個別權限,就會導致難以測試和維護的不安全應用程序,因為無意中授予過多的權限會造成完全漏洞。#t#
連接到 Microsoft SQL Server 后,您便可以使用 Windows 身份驗證(也稱為集成安全),ADO.NET連接使用當前活動 Windows 用戶的標識,而不是傳遞用戶 ID 和密碼。由于不會在連接字符串中公開用戶憑據,因此強烈建議使用 Windows 身份驗證。如果無法使用 Windows 身份驗證連接到 SQL Server,請考慮使用 SqlConnectionStringBuilder 在運行時創建連接字符串。
用于身份驗證的憑據需要根據應用程序的類型進行不同地處理。例如,ADO.NET連接在 Windows 窗體應用程序中,可以提示用戶提供身份驗證信息,也可以使用用戶的 Windows 憑據。但是,Web 應用程序通常使用應用程序自身提供的憑據來訪問數據,而不是使用用戶提供的憑據。
(而不是作為 Transact-SQL 語句的一部分)進行傳遞,參數化命令可抵御 SQL 注入攻擊。這樣,便不會在數據源中執行插入到值中的 Transact-SQL 命令。相反,只會將這些命令作為參數值來計算。除具備安全優勢外,參數化命令還提供一種便捷方法,使用該方法可組織隨 Transact-SQL 語句傳遞或傳遞到存儲過程的值。#t#
當具有最少的安全要求或沒有安全要求時,Microsoft Access 和 Microsoft Excel 可充當 ADO.NET連接應用程序的數據存儲區。其安全功能作為一種阻止手段固然有效,但其作用僅限于阻止不了解情況的用戶亂摸亂動而已。Access 和 Excel 的物理數據文件位于文件系統上,并且注定可供所有用戶訪問。
這使得這些文件易受到攻擊,從而導致文件失竊或數據丟失,ADO.NET連接因為他人可輕松復制或更改這些文件。如果需要強有力的安全措施,請使用 SQL Server 或其他基于服務器的數據庫,這樣便無法從文件系統讀取物理數據文件。