8

我想以这样一种方式托管动态语言运行时 (DLR),以使在其中运行任意脚本的用户无法关闭进程?

DLR 托管规范描述了如何在单独的 ApplicationDomain 中托管 DLR 。这允许拆除和卸载脚本运行时并通过 CAS 限制某些操作(例如,我可以限制文件系统访问或禁止使用反射)。

但是还有一些方法可以例如: - 限制脚本使用的最大内存量?- 限制脚本创建的线程数?- 检测死锁的脚本?

我认为使用为 SQL Server 开发的非托管 .net 托管 API可以实现这种细粒度的控制。这是前进的方向吗?这种通用的.net沙盒有开源项目吗?

以下是我发现的一些可能有用的参考资料:

4

1 回答 1

3

看看Terrarium - 这是一个游戏,您可以在其中使用 .NET 语言构建自己的自主小动物,并将它们与描述它们的程序集一起传送到其他联网计算机。目标是让您的小动物通过杀死其他一切或战略性地管理食物资源来接管整个生态系统。

我记得,任何花费超过 0.n 秒“思考”或 n kb 内存的生物都会被删除。

于 2010-07-16T22:47:06.557 回答