我有一个可以通过反射来加载插件的Web应用程序。它目前使用Assembly.LoadFrom()
和Activator.CreateInstance()
完成此操作。现在,插件被加载到相同的AppDomain中,并可以访问我的应用程序中的任何内容以及我的应用程序可以访问的任何内容。限制.net插件可以访问的内容
我在寻找的是一种限制插件为安全目的可以访问的类和方法。我想让所有的类和方法在被调用时抛出异常,除非它们被列入白名单。我基本上将一个API类和几个数据传输对象中的所有函数列入白名单。
我也不希望插件能够访问它自己的文件系统或数据库。我想我可以在单独的AppDomain中使用信任级别来实现这一点。
有没有人有任何好的想法或资源?这是可以通过代码访问安全性或.net 4中新的安全透明代码功能完成的事情吗?
我猜你没有一个系统管理员负责保持网站的稳定。谁添加插件?顾客? – 2010-04-15 00:13:54
我们不允许客户将插件直接上传到现场。不过,我们正计划采用客户给我们的插件,并将它们自己添加到网站中。除非我拆解dll并手动检查,否则我不确定我是否完全信任它。 – 2010-04-15 00:16:56