如何限制处理能力

本文关键字:能力 处理 何限制 | 更新日期: 2023-09-27 18:00:17

我正在为ACM解决方案(如TopCoder、Timus和其他解决方案)编写一种通用的竞赛系统。当用户使用web服务发送他的解决方案时,我需要运行/编译它。为了安全运行,我想对它设置限制(无法访问外部文件,无法获取系统时间,无法更改工作目录等)有两种用户解决方案:

  • 可以编译的解决方案(又名c/c++/pascal),还有jit-ed和字节码解决方案(c#,java)

  • 解释解决方案(lisp/ruby/python.php)

Contester系统是用C#为.NET 3.5编写的。参赛者可以在Mono上的Linux和.NET上的Windows中运行。

最好的方法是什么?如果有能力限制已编译的解决方案(使用PermissionAttributes),但我不知道如何限制已解释的解决方案。

如何限制处理能力

最简单的方法(您可能需要完全信任)是在非常有限的用户帐户下运行。IIRC来宾帐户不能用于此操作。

编辑:

一个干净的虚拟机可能是理想的。