占位包:Magic-sandbox 轻量级python沙箱工具(即将推出)
Project description
magic-sandbox
轻量级、可审计的 Python 沙箱
安全执行不可信代码,守住所有危险操作的必经之路。
项目状态
开发中 - 首个正式版本将于 2026 年 Q3 发布
特性
- 🚀 极轻量:纯 Python 实现,零外部依赖,毫秒级启动。
- 🛡️ 纵深防御:AST 静态分析 + 动态桩 + 声明式资源 + 可选子进程隔离。
- 📝 完整审计:所有危险操作(文件、网络、子进程、动态库)自动记录日志,不可篡改。
- 🧩 声明式权限:第三方代码必须预先声明所需资源(文件路径、网络域名等),越权即拦截。
- 🔁 互为触发:每一层防御都不是孤立的,突破 AST 会触发动态桩,攻击动态桩会被 AST 捕获。
- 🧪 Dry-Run 模式:在完全隔离的环境中模拟执行,观察行为而不产生真实副作用。
适用场景
- AI Agent / LLM 生成的代码执行
- 量化交易策略隔离
- 在线代码评测(Judge)
- 插件系统(IDE、CMS、数据处理平台)
- 低代码平台的自定义脚本
- 任何需要安全运行不可信 Python 代码的场景
安装
pip install magic_sandbox
安全设计概览
| 防御层 | 技术 | 作用 |
|---|---|---|
| 静态分析 | AST 扫描 | 禁止字符串拼接、危险属性(__class__)、高危函数(eval) |
| 动态桩 | 函数入口替换 | 前置校验参数、限流、dry-run 模拟 |
| 审计钩子 | sys.addaudithook |
底层不可绕过的监控,记录所有危险调用 |
| 声明式资源 | Manifest 校验 | 最小权限原则,越权即拦截 |
| 子进程隔离 | subprocess + seccomp |
可选模式,即使逃逸也无法影响主进程 |
| 审计日志 | 结构化 + SQLite | 完整记录攻击路径,防篡改 |
示例(待正式版本发布后补充)
示例代码将在正式版本发布时补充。
代码规范
本项目遵循以下基本原则:
- 单文件不超过 200 行:超过时请拆分为多个模块
- 单函数不超过 200 行:超过时请拆分为多个小函数
- 注释尽量完整:关键逻辑、复杂算法、非显而易见的代码必须有注释说明
- 如有特殊场景确实需要突破(如纯数据定义文件),可在 PR 中说明。
这些规则旨在保证代码的可读性和可维护性,便于合作,请尽量遵守。
针对 AI 辅助工具的提示
本项目使用 AI 辅助开发,请在生成代码时尽量遵守上述代码规范。
许可证
MIT License
作者
wxd123 - GitHub
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
magic_sandbox-0.1.0.tar.gz
(4.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file magic_sandbox-0.1.0.tar.gz.
File metadata
- Download URL: magic_sandbox-0.1.0.tar.gz
- Upload date:
- Size: 4.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b22ec2c0c8144954c4ee3cdf5899f34a1dd33d150512be45951ebe8436b7b7b
|
|
| MD5 |
cdef2afd4496540f1079017815fd124b
|
|
| BLAKE2b-256 |
9cd600b4ee5dcd69eaf1679cdf887f08f4bb92ba45d757e02de7d23b6e0b9608
|
File details
Details for the file magic_sandbox-0.1.0-py3-none-any.whl.
File metadata
- Download URL: magic_sandbox-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e3a0fd31738e12ef8a8ba923c2b3d7b64748e8c249c1c165c5885cdd72c47fd
|
|
| MD5 |
7845422ce3040a99d856cba18ff5a60a
|
|
| BLAKE2b-256 |
4d40b410568b9489831404ec85480c9a4e65322ea9677d87a227d3dc9920b928
|