一些由 .NET Framework 所提供的许可而被保护的操作能够潜在地允许对安全系统产生回避。这些危险的许可只应该被提供给可依赖的代码,如果有必要的话。并且这样做通常不会防范任何反向的恶意代码,如果这些许可是被批准的。
危险的许可将在下表中被说明。
许可 | 潜在的隐患 |
---|---|
SecurityPermission | |
UnmanagedCode | 允许已管理的代码来调用未管理的代码,这通常是危险的。 |
SkipVerification | 无需核实,代码能够做任何事情。 |
ControlEvidence | 已失效的依据可能会欺骗安全策略。 |
ControlPolicy | 更改安全策略的能力能够禁用安全。 |
SerializationFormatter | 序列化的使用能够欺骗可访问性机制。关于详细内容,请参考:[安全与序列化]。 |
ControlPrincipal | 设置当前负责人的能力能够欺骗基于角色的安全。 |
ControlThread | 线程的处理是危险的,因为安全状态被关联到了线程中。 |
ReflectionPermission | |
MemberAccess | 能够使用私有的成员来使得可访问性机制形同虚设。 |