ASP.NET Lab

The Best Web, The Best Future

博客园 首页 新随笔 订阅 管理

一些方法被用来装载被管理代码,包括 Assembly.Load,它们会以调用者的意图来装载汇编集。如果你包装了这些方法中的任何一个,那么安全系统就会使用你的代码许可批准,替代对你的包装器进行调用的调用者许可来装载这些汇编集。所以你不应该允许几乎不被信任的代码来装载比你的包装器调用者拥有更高级别的代码。

任何拥有完全信任或者比潜在的调用者(包括互联网许可级别的调用者)拥有更要高级别的信任的代码都有可能削弱安全性。如果你的代码拥有一个获取字节数组并且把它传递给 Assembly.Load 的公开方法,因此为调用者的利益而创建一个汇编集,那么它就有可能破坏到安全性。

这个问题适用于下列 API 元素:

  • System.AppDomain.DefineDynamicAssembly
  • System.Appdomain.Load
  • System.Reflection.Assembly.LoadFrom
  • System.Reflection.Assembly.Load
posted on 2007-02-09 15:20  Laeb  阅读(178)  评论(0编辑  收藏  举报