项目简介
本项目是基于Docker和Java的代码沙箱系统,目标是提供安全、隔离的环境来执行用户提交的代码。支持Java代码的编译与执行,借助Docker容器技术有效隔离用户代码与宿主机环境,保障系统安全。
项目的主要特性和功能
- 代码执行:可接收用户提交的Java代码,完成编译和执行,能处理非交互式和交互式代码执行。
- 安全机制:利用Docker容器隔离用户代码,避免恶意代码影响宿主机,还实现了超时控制、资源限制、黑白名单机制和安全管理器来增强安全性。
- 错误处理:能捕获和处理代码执行过程中的错误,并返回详细错误信息。
- 文件管理:自动保存用户代码文件,执行完成后清理,保证系统整洁安全。
- 多语言支持:虽当前主要支持Java,但设计时考虑了多语言扩展可能性。
安装使用步骤
前提条件
- 已安装Docker,且Docker服务正在运行。
- 已安装Java开发环境(JDK 8或更高版本)。
- 已下载本项目的源码文件。
步骤
- 复制项目:
bash cd code-sandbox
- 构建项目:
bash mvn clean install
- 启动Spring Boot应用:
bash java -jar target/code-sandbox-1.0.0.jar
- 访问API:
项目启动后,通过以下URL访问API:
http://localhost:8080/
- 提交代码执行请求:
使用POST请求提交代码执行请求,请求体格式如下:
json { "inputList": ["2 3", "3 4"], "code": "public class Main { public static void main(String[] args) { int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); System.out.println(a + b); } }", "language": "java" }
- 查看执行结果: 系统将返回代码执行的结果,包含输出信息、执行时间、内存使用情况等。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】