共用方式為


調試程式安全性

偵錯另一個程序的能力可讓您擁有非常廣泛的權限,尤其是在遠端偵錯時。 惡意調試程式可能會在偵錯的計算機上造成廣泛的損害。

不過,許多開發人員都不知道安全性威脅也可以向相反的方向流動。 偵錯程式被調試的進程中的惡意代碼可能會危及偵錯機器的安全性:必須防範許多安全性漏洞。

安全性最佳做法

您要偵錯的程式代碼與調試程式之間有隱含信任關係。 如果您願意偵錯某個專案,也應該願意執行它。 底線是您必須能夠信任您要偵錯的內容。 如果您無法信任它,則不應對其進行偵錯,或應該在一台您能承受風險的計算機上進行偵錯,並在隔離的環境中進行。

為了減少潛在的受攻擊面,應該在生產計算機上停用偵錯。 基於同樣的原因,偵錯不可無期限地啟用。

管理的除錯安全性

以下是適用於所有管理的偵錯過程的一般建議。

遠端偵錯安全性

本機偵錯通常比遠端偵錯更安全。 遠端偵錯會增加可探測的總複雜度。

Visual Studio 遠端偵錯監視器 (msvsmon.exe) 用於遠端偵錯,而且有數個設定安全性建議。 設定驗證模式的慣用方式是 Windows 驗證,因為沒有驗證模式不安全。

錯誤對話框

使用 Windows 驗證模式時,請注意,授與未受信任的用戶連線到 msvsmon 的許可權很危險,因為使用者已獲授與裝載 msvsmon 之計算機上的所有許可權。

請勿在遠端電腦上對未知程序進行除錯:可能存在會影響執行除錯工具的電腦的漏洞,或者可能會危害 msvsmon。 如果您絕對必須偵錯未知的進程,請嘗試在本機偵錯,並使用防火牆來保留本地化的任何潛在威脅。

如需設定 msvsmon 的相關信息,請參閱 設定遠端調試程式

網路服務除錯安全性

在本機偵錯更安全,但因為您可能未在網頁伺服器上安裝Visual Studio,所以本機偵錯可能並不實用。 一般而言,偵錯 Web 服務會從遠端完成,但開發期間除外,因此遠端偵錯安全性的建議也適用於 Web 服務偵錯。 以下是一些其他最佳做法。 如需詳細資訊,請參閱 偵錯 XML Web 服務

  • 請勿在遭到入侵的網頁伺服器上啟用偵錯。

  • 在偵錯 Web 伺服器之前,請確定您知道網頁伺服器是安全的。 如果您不確定它是安全的,請勿進行偵錯。

  • 如果您要偵錯因特網上公開的 Web 服務,請特別小心。

外部元件

請注意程式與外部元件互動的信任狀態,特別是如果您未撰寫程序代碼。 也請注意 Visual Studio 或調試程式可能會使用的元件。

符號和原始程式碼

需要考慮安全性的兩個 Visual Studio 工具如下: