2010-05-26 42 views

回答

15

FileSystemWatcher類具有無限制的CAS權限的鏈接要求。這意味着它將驗證其直接調用者(即:如果您直接使用該類,則爲您的代碼)具有不受限制的權限。

不幸的是,由於間接調用者的權限(即:調用您的代碼的代碼)未通過鏈接需求進行驗證,因此使用鏈接需求會帶來潛在的安全漏洞。這意味着具有受限權限的間接調用者可能能夠操縱您的高度可信的代碼,以代表它做任何邪惡的事情,否則它將不具備完成的權限。

防止此類攻擊的方法之一是將相同權限的全部需求應用於消耗類型或成員且鏈接需求的任何代碼。這將確保任何間接呼叫者都會受到相同的權限要求,從而確保他們無法通過您的代碼執行任何他們自己無法完成的任何操作。這種類型的完全需求的應用程序是在FileSystemWatcher的MSDN示例代碼中顯示的內容。

+0

我覺得我對它的理解還不夠。該示例運行正常,但沒有「PermissionSet ...」行。它如何幫助代碼實現它? 「FullTrust」又是什麼意思?管理員權限在機器上還是完全訪問有問題的文件/目錄? – Jeff 2010-05-26 17:17:05

+4

該屬性不能幫助您的代碼運行。相反,它有助於防止它在不應該運行時運行。 「FullTrust」是指不受限制的代碼訪問安全權限。這與授予用戶帳戶的權限無關。代碼訪問安全性是由.NET提供的附加安全層,允許用戶控制授予運行代碼的權限。有關簡介,請參閱http://msdn.microsoft.com/en-us/library/930b76w0(VS.71).aspx。 – 2010-05-27 13:16:05

相關問題