如果我向.net框架提供我的程序集所属代码组的证据,我是否不能提供虚假证据表明我属于受信任区域代码组?
我知道安全策略是什么,权限集但我不明白框架如何检查证据,然后根据该证据确定代码组。
任何解释都将不胜感激。
谢谢:)
答案 0 :(得分:0)
证据可以是汇编强名,代码库和其他东西。它当然可以验证这些东西。您可以根据证据手动信任程序集。基本上,如果程序集具有以下属性,则告诉框架,将其授予该权限集。我认为你没有办法提供虚假证据。你能提供一个例子吗?
PS。是的,你可以,例如偷一个人的钥匙对,并用那个签署你的装配。与任何其他安全系统一样,它依赖于信任链。如果你打破链条的一部分,你就搞砸了。你无法在安全系统中绕过这些东西。毕竟,您可以通过缓冲区溢出或其他方式破坏系统,并将您的程序集添加到完整信任列表。
答案 1 :(得分:0)
允许呼叫者提供证据的各种BCL方法本身受到许可要求的保护。调用者通常至少需要SecurityPermission \ ControlEvidence,但通常需要不受限制的权限授予(也称为“完全信任”)。 (由于SecurityPermission \ ControlEvidence仅授予默认CAS策略下的本地安装代码,因此在大多数情况下几乎没有实际差异。)最终结果是,只有高度可信的代码才能通过控制其证据来影响任何给定程序集的权限授予。
如果您认为自己发现了此一般规则的例外情况,请提供详细信息吗?