Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何对学生提交的Python 3代码进行沙箱处理,以便在Windows 10上进行自动作业评估?_Python_Windows 10_Sandbox - Fatal编程技术网

如何对学生提交的Python 3代码进行沙箱处理,以便在Windows 10上进行自动作业评估?

如何对学生提交的Python 3代码进行沙箱处理,以便在Windows 10上进行自动作业评估?,python,windows-10,sandbox,Python,Windows 10,Sandbox,我是一个编码课程的助教,在这个课程中,学生必须编写Python 3脚本来解决编程问题。作业由几个问题组成,对于每个问题,学生应该编写一个python程序,从标准输入读取输入,并将输出写入标准输出。对于每个问题,都会有隐藏的测试用例,我们将使用这些测试用例来评估它们的代码并相应地给它们打分。因此,我们的想法是尽可能地自动化这个过程。问题是如何实现整个框架来运行学生的作业,而不影响作业运行系统的安全性,这可能是我的笔记本电脑,它有Windows 10。我需要为Python3设置一些沙箱,对执行时间、

我是一个编码课程的助教,在这个课程中,学生必须编写Python 3脚本来解决编程问题。作业由几个问题组成,对于每个问题,学生应该编写一个python程序,从标准输入读取输入,并将输出写入标准输出。对于每个问题,都会有隐藏的测试用例,我们将使用这些测试用例来评估它们的代码并相应地给它们打分。因此,我们的想法是尽可能地自动化这个过程。问题是如何实现整个框架来运行学生的作业,而不影响作业运行系统的安全性,这可能是我的笔记本电脑,它有Windows 10。我需要为Python3设置一些沙箱,对执行时间、内存使用、不允许访问文件系统、网络、仅将导入限制为Python标准库中的安全模块等设置限制

从概念上讲,我想要某种沙盒服务,可以接收python脚本+一些测试用例,该服务在安全的环境中针对测试用例运行python脚本,检测编译错误、超出时间限制的错误、超出内存限制的错误、尝试使用禁止的库,等等,并报告结果。因此,在Windows中,我可以简单地编写一个简单的脚本,对所有学生提交的内容进行迭代,并使用此服务作为黑盒对其进行评估

在Windows 10上有类似的功能吗?如果是,怎么做?我有根据地猜测,Docker或虚拟机之类的东西可能有用,但老实说,我不太确定,因为我在这些技术方面缺乏足够的专业知识,所以我愿意接受任何建议


任何关于如何设置安全系统以自动评估不受信任的Python 3代码提交的建议,我们都将不胜感激。

您正在寻找一个使用测试用例自动评估代码的系统


您可以使用来满足您的用例。它主要是一个用于管理编程竞赛的系统,但它非常适合您在课堂上完成的任务。

如果您在笔记本电脑中安装一个独立的linux虚拟机并对其进行适当配置,您可以使用所需的libs将学生脚本上传到virtualenv中,并针对所需的api运行单元测试或收集一些进程统计信息。或者自动运行脚本。如果在运行之前您在VM中禁用了网络,那么我认为应该不会对您的系统造成伤害,您可以重新启动VM,并对其内存使用、cpu等进行限制。基本上,换句话说,不要直接在笔记本电脑/网络上运行他们的工作。我不知道CMS,但看起来对管理层来说很有趣。否则Python沙盒看起来很难从我的简短搜索中找到。我不在这里评论docker