在MSDN FileSystemWatcher类页面上,它包含一个具有以下类属性的示例:
[PermissionSet(SecurityAction.Demand, Name="FullTrust")]
这是为了什么目的?什么时候应该包括还是不包括在内?
FileSystemWatcher类帮助页面位于:http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx
答案 0 :(得分:18)
FileSystemWatcher
班has a link demand for unrestricted CAS permissions。这意味着它将验证其直接调用方(即您的代码,如果您直接使用该类)具有不受限制的权限。
不幸的是,使用链接需求会打开潜在的安全漏洞,因为间接呼叫者的权限(即调用您的代码的代码)不会被链接需求 验证。这意味着具有受限权限的间接调用者可能能够操纵您高度信任的代码,以代表其执行某些恶意代码,否则将无权完成这些代码。
防止此类攻击的一种方法是将您对相同权限的完全需求应用于使用具有链接需求的类型或成员的任何代码。这将确保任何间接呼叫者都将受到相同的许可要求,从而确保他们无法通过您自己无法完成的代码执行任何操作。 FileSystemWatcher
的MSDN示例代码演示了这种完全需求的应用。