0

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

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

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

4

1 回答 1

0

如果您正在寻找更安全的操作,您可以启动一个新的 AppDomain 并从那里加载程序集,或者更简单,您可以在仅反射模式下加载程序集,例如

http://msdn.microsoft.com/en-us/library/system.reflection.assembly.reflectiononlyloadfrom.aspx

关于随机程序集可能对 Web 应用程序构成什么威胁,这不是小事,您不应盲目相信来自第三方的程序集。例如,一个程序集可能包含一个标有 prestart 属性的方法,并在您的应用程序启动之前做一些错误的事情。它也可能被恶意编写为包含与其他名称相同的名称空间和类名,因此,意外编写的反射代码可能会从恶意程序集中而不是另一个程序集中获取类。您不想将任何人的程序集加载到您的应用程序中的原因有很多。

于 2013-03-05T06:34:09.677 回答