危险权限和策略管理

.NET Framework 为其提供权限的多个受保护操作可能会允许规避安全系统。 因此,应只向可信代码授予这些危险权限,并且只在必要的时候才授予。 如果向恶意代码授予这些权限,通常就没有防范它的措施了。

注意注意

在 .NET Framework 4 版中,对 .NET Framework 安全模型和术语进行了重要的更改。有关这些更改的更多信息,请参见 .NET Framework 4 中的安全性更改

下表中说明了这些危险权限。

权限

可能的风险

SecurityPermission

   

UnmanagedCode

允许托管代码调入非托管代码,这常常是很危险的。

SkipVerification

如果没有验证,代码可以进行任何操作。

ControlEvidence

失效的证据可以欺骗安全策略。

ControlPolicy

修改安全策略的能力可以禁用安全性。

SerializationFormatter

使用序列化可以规避可访问性机制。 有关详细信息,请参见安全和序列化

ControlPrincipal

设置当前主体的能力可以欺骗基于角色的安全。

ControlThread

由于与线程关联的安全状态的原因,对线程进行操作是很危险的。

ReflectionPermission

   

MemberAccess

可以使用私有成员使可访问性机制无效。

请参见

概念

代码安全维护指南