gpt4 book ai didi

c# - 对 .NET 程序集进行沙盒化 - 上传 DLL,然后进行反射

转载 作者:行者123 更新时间:2023-11-30 15:35:58 24 4
gpt4 key购买 nike

我想编写一个 MVC 应用程序,允许我们开发组中的某个人上传 .NET 程序集,然后我想反射(reflect) .dll 以从中收集信息。我想安全地做这件事。从来没有在“沙箱”中加载这样的程序集。正确的做法是什么?

最佳答案

如果您只想检查元数据,那么您可以使用 Assembly.ReflectionOnlyLoadFrom .使用此 API 加载程序集会加载程序集,但其中的代码均不可执行:

You cannot execute code from an assembly that has been loaded into the reflection-only context. To execute the code, load the assembly with the LoadFile method.

如果您需要能够卸载程序集,您可能希望在新的 AppDomain 中执行此操作。无法卸载程序集,但可以卸载包含它们的 AppDomain。

如果您需要执行一些代码,但又想确保库不会做任何坏事,您可以加载一个新的 AppDomain 并使用代码权限来限制 AppDomain。 This CodeProject Article给出了一个很好的操作步骤。

关于c# - 对 .NET 程序集进行沙盒化 - 上传 DLL,然后进行反射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14281981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com