本项目旨在构建一个安全沙箱环境,专门设计用来运行不可信的代码。通过严格的隔离机制和资源限制,确保系统的整体安全性不受损害。
神盒是一个用于执行不受信任代码的安全沙箱系统。它利用Linux内核的特定功能进行隔离操作,因此Godbox只能在Linux环境下运行。
安装Docker并设置版本为3:
```yaml
services:
godbox:
image: quantumsheep/godbox:2
privileged: true
ports:
- 8080:8080
```
或者使用命令行:
```bash
docker run -it -d --privileged -p 8080:8080 quantumsheep/godbox:2
```
用法包括发布和运行特性名称类型描述阶段。例如,可以包含以下参数:
- *Phase[]*:表示执行的各个阶段。
- 文件(*string*):这是Base64编码的zip文件,其中包含了所有在各阶段使用的文件。
- 环境变量(Record):用于定义整个过程中需要的所有环境变量。
- 沙盒设置(SandboxSettings):允许覆盖默认沙箱限制。例如:
```typescript
interface SandboxSettings {
run_time_limit ?: number = 5;
extra_time_limit ?: number = 0;
wall_time_limit ?: number = 10;
stack_size_limit ?: number = 64 * (2 ** 20);
memlock_soft_limit ?: number = 384 * (2 ** 20);
memlock_hard_limit ?: number = Math.min(512, os.totalmem() / (1024*1024)) * (2**20);
file_size_limit ?: number = 67108864;
max_files ?: number = 32768;
}
```