我正在研究在线python编译器的项目。当用户发送python时,服务器将执行它。我想要做的是,使用虚拟文件系统创建一个沙箱,实例化该脚本,并且该沙箱应该远离真实服务器的文件系统,但是nodejs应该能够控制该沙箱的stdin和stdout。
如何使其成为可能?
Docker是将内容沙盒化的好方法。
您可以跑步
docker run --network none python:3
从您的node.js服务器。查看其他switches of docker run以插入尽可能多的安全漏洞。
该是,您运行docker命令from your node.js server and pass the user's python code via stdin。
现在,如果您的node.js服务器位于一台计算机上,而发件箱应在另一台计算机上运行,您告诉docker使用DOCKER_HOST
environment variable连接到另一台计算机。