gpt4 book ai didi

c# - 如何防止插件执行有害代码

转载 作者:太空狗 更新时间:2023-10-29 20:24:55 26 4
gpt4 key购买 nike

我目前正在为我的学士论文开发一个非常模块化和基于插件的框架。主要思想是,在我的应用程序结构中有一个名为 plugins 的文件夹,您可以在其中放入编译的插件(例如 .dll-files),它符合特殊的接口(interface) IPlugin。然后应用程序使用用户选择的插件执行任务。所以,如果我想在 PDF 文件中执行一次任务,我会选择 PdfPlugin,而在 word 文档中,我会选择 DocPlugin工作。

输出也在接口(interface)中定义,所以每个插件返回相同的数据结构。只是每个库的实际工作不同。

现在,因为应用程序只调用接口(interface)中定义的方法,例如ParseDocument() 等等,如何防止插件(可能由第三方开发)执行有害代码?

我正在研究 .NET3.5(可能会切换到 4,尚未决定)和 C#。

最佳答案

I'm working on .NET3.5

在这种情况下,我会隔离您的插件以在单独的 AppDomain 中运行, 使用 Code Access Security限制App Domain的权限集。这会“沙盒化”您的插件程序集。

例如,您可以取消所有非托管代码权限和文件 IO 权限,然后您的插件将永远无法写入文件系统。

这不适合胆小的人。 AppDomains 可能很难处理并且需要序列化、对象生命周期策略等。您可以使用 MAF因为它带走了很多管道。

关于c# - 如何防止插件执行有害代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11363748/

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