当不激活/实例化任何内容时,在.net中加载程序集是否安全?

当不激活/实例化任何内容时,在.net中加载程序集是否安全?,.net,security,reflection,.net-assembly,.net,Security,Reflection,.net Assembly,我目前正在为某人开发一个asp.net应用程序,该应用程序能够在应用程序运行时开始时自动加载.net程序集文件,并允许用户动态添加新程序集 我计划创建一个页面,允许授权用户手动加载和查看有关程序集的信息,例如引用的程序集以及其中包含的命名空间和类。如果用户访问此信息并认为它“安全”,则程序集将被添加到程序集列表中,以便在应用程序启动时与其他程序集一起加载和处理。应用程序将程序集添加到受信任列表后,应用程序将处理程序集的内容 我需要知道的是,如果没有类被激活/实例化,是否可以直接加载程序集以获取此

我目前正在为某人开发一个asp.net应用程序,该应用程序能够在应用程序运行时开始时自动加载.net程序集文件,并允许用户动态添加新程序集

我计划创建一个页面,允许授权用户手动加载和查看有关程序集的信息,例如引用的程序集以及其中包含的命名空间和类。如果用户访问此信息并认为它“安全”,则程序集将被添加到程序集列表中,以便在应用程序启动时与其他程序集一起加载和处理。应用程序将程序集添加到受信任列表后,应用程序将处理程序集的内容


我需要知道的是,如果没有类被激活/实例化,是否可以直接加载程序集以获取此信息,从而说它是“安全的”。如果没有,什么资源最适合这种评估程序集威胁的方法。

如果您希望更安全地执行此操作,您可以启动一个新的AppDomain并从此处加载程序集,或者更简单,您可以以仅反射模式加载程序集,如


关于随机程序集可能对web应用程序造成的威胁,这不是小事,您不应该盲目信任来自第三方的程序集。例如,一个程序集可能包含一个标记有prestart属性的方法,并在应用程序启动之前执行一些不正常的操作。它还可能被有害地编写为包含与其他程序集相同的名称空间和类名,以便意外编写的反射代码可能从恶意程序集而不是其他程序集中拾取类。你不想只将任何人的程序集加载到你的应用程序中有很多原因。

听起来,预启动属性正是我要问的,它会使直接加载程序集变得不安全。这只是你想到的第一件事,但可能还有其他事情需要注意。:)