編寫視覺化工具涉及可能的安全威脅。 目前不存在針對這些潛在威脅的已知漏洞,但開發人員應該意識到它們並採取適當的安全預防措施,如此處所述,以防止未來的漏洞利用。
偵錯工具視覺化檢視需要比部分信任應用程式所允許的更大許可權。 當您在具有部分信任的程式碼中停止時,視覺化檢視將不會載入。 若要使用視覺化檢視進行偵錯,您必須以完全信任的方式執行程式碼。
備註
程式碼存取安全性 (CAS) 已在所有版本的 .NET Framework 和 .NET 中被取代。 最新版本的 .NET 不會接受 CAS 註釋,如果使用 CAS 相關 API,則會產生錯誤。 開發人員應尋求其他方法來完成安全任務。
可能的惡意偵錯對象元件
視覺化工具至少包含兩個類別:一個位於偵錯器端,另一個位於偵錯對象端。 視覺化檢視通常會部署在特殊目錄中的個別元件中,但也可以從偵錯元中載入。 發生這種情況時,偵錯工具會從偵錯工具中取出程式碼,並以完全信任的方式在偵錯工具內執行它。
當偵錯元未完全信任時,以完全信任的方式執行偵錯元端程式碼會變成問題。 如果視覺化檢視嘗試將部分信任元件從偵錯工具載入偵錯工具,Visual Studio 會終止視覺化工具。
然而,仍然存在一個小漏洞。 受測程式端可以與從另一個來源(而非受測程式)載入的偵錯工具端建立關聯。 偵錯對象端接著可以告訴受信任的偵錯器端代其執行動作。 例如,如果受信任偵錯工具端類別公開「刪除此檔案」機制,則部分信任偵錯專家可以在使用者叫用其視覺效果檢視時叫用該機制。
若要減輕此弱點,請注意視覺化工具所公開的介面。