【发布时间】:2009-08-13 21:15:21
【问题描述】:
我目前正在向我的应用程序添加一个接口,以便其他人可以使用插件对其进行扩展。我的应用程序被 MMO 游戏玩家使用,我无法控制插件(因为任何人都可以制作它们),我希望我可以对插件中的代码有一定程度的控制。
我害怕的是有人制作了一个插件,该插件要么包含开始写入“允许”文件夹之外的文件夹的错误代码,要么是故意这样做的。由于这将由 MMO 游戏玩家运行,因此某种键盘记录器会非常糟糕。
所以我希望有办法让我: 强制插件在无法直接访问文件系统、Windows 或网络的沙箱中运行。实际上迫使他们使用我为这些操作提供的 API。 我在想检查插件 dll 可能是可能的,希望它包含它使用的命名空间列表,并且根本不加载包含“坏”命名空间的插件。
我的插件界面是基于this great codeproject artice 的,我确实尝试过搜索这方面的一些信息。但是我无法将我的搜索细化到它返回有用的东西,如果它数学我的技能水平是 C# 和一些跨平台 c++。
【问题讨论】:
-
我会检查类似 Google 的 V8 可嵌入 Javascript 引擎的东西。它要求您至少使用一些 C++,但您可以公开您想要的任何接口/对象,而不是使用您链接的插件架构所要求的开放式方法。