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