繁体   English   中英

可以将.Net DLR托管在“防白痴”沙箱中吗?

[英]Is it possible to host the .Net DLR in an “idiot-proof” sandbox?

我想以一种这样的方式托管动态语言运行时(DLR),即在其中运行任意脚本的用户不能降低该进程的速度吗?

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

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

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

这是我发现的一些潜在有用的参考资料:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM