共用方式為


在 Automation 中安全性的最佳作法

更新:2007 年 11 月

Visual Studio Automation 的開發人員必須了解所有的安全性弱點,才能了解並承擔建立安全應用程式的責任。安全的應用程式能保護客戶資訊的機密性、完整性和可用性。此外,它也能保護系統擁有人或系統管理員所控制之處理資源的完整性和可用性。

這裡所討論的安全性弱點,是指產品中的缺陷,即使正確使用產品,攻擊者仍然可以達到下列目的:

  • 盜用使用者系統上的權限

  • 對系統作業進行限制、變更或重新導向

  • 破壞系統中的資料

    -或-

  • 不當取得信任

重要事項:

千萬不要認為您的應用程式只會在少數指定的環境中執行,尤其是使用非常普遍的應用程式。應用程式很有可能會在其他未預料到的情況下使用。因此,您應該假設程式碼將會在風險極大的環境下執行,然後根據這個假設來設計、撰寫及測試程式碼。

撰寫安全的應用程式有其優點。在最初設計及建置時就考量到安全性問題的程式碼,一定會比遇到安全性問題後才撰寫的程式碼來得更加周全完善。設計安全的應用程式比較不必擔心媒體的批評、對使用者比較具有吸引力,而且修正與支援的花費也比較少。

有風險的 API

從安全性的觀點來看,有些 API 函式的風險可能比較大,有些可能是運作方式本身有風險,也有些是因為呼叫或處理方式不正確而導致的風險。重點是,您必須了解各種 API 函式的漏洞和缺點,如果有任何安全性的風險,就必須確保使用方式正確。

此外,請不要因為程式碼所使用的 API 函式都是「安全的」,就認為應用程式也一定是安全無虞。如果不注意某些程式設計上的作法,應用程式所承擔的風險可能會比使用所謂「危險的」函式還要可怕。這些作法包括:

  • 未正確處理例外狀況

  • 使用硬式編碼的路徑

  • 使用硬式編碼的連接字串

    -或-

  • 未妥善檢查使用者認證或權限

若要保護應用程式,請仔細研究這個主題,徹底了解程式碼的安全性問題。Microsoft Press 出版的《Writing Secure Code》一書,以及位於 https://msdn2.microsoft.com/en-us/library/d55zzx87.aspx 的安全性程式碼撰寫方針網站 (英文),都是值得您參考的資料。

此外您也必須了解,有許多安全性的問題是由於應用程式盲目信任資料輸入所造成的。因此,應用程式必須仔細檢查及評估所收到的資料,在使用之前先確認資料語式正確 (Well-Formed),而且值得信任。

Automation 的安全性功能

除了遵循這些方針,Visual Studio Automation 還提供了一些簡單而明確的方式,可協助您確保系統的安全,不會因為 Automation 的安全性而受到影響。但是請記住,這些作法並不能永久解決所有的安全性問題。不過,好的開始就是成功的一半。如需詳細資訊,請參閱增益集安全性

在建置 Automation 應用程式之前,請仔細研究並且確實遵從 .NET 的安全性方針。

請參閱

概念

用於建立安全應用程式的資源

其他資源

重要的安全性概念