magic-sandbox 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- magic_sandbox-0.1.0/LICENSE +21 -0
- magic_sandbox-0.1.0/PKG-INFO +88 -0
- magic_sandbox-0.1.0/README.md +69 -0
- magic_sandbox-0.1.0/pyproject.toml +38 -0
- magic_sandbox-0.1.0/setup.cfg +4 -0
- magic_sandbox-0.1.0/src/magic_sandbox/__init__.py +0 -0
- magic_sandbox-0.1.0/src/magic_sandbox.egg-info/PKG-INFO +88 -0
- magic_sandbox-0.1.0/src/magic_sandbox.egg-info/SOURCES.txt +8 -0
- magic_sandbox-0.1.0/src/magic_sandbox.egg-info/dependency_links.txt +1 -0
- magic_sandbox-0.1.0/src/magic_sandbox.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 wxd123
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: magic-sandbox
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: 占位包:Magic-sandbox 轻量级python沙箱工具(即将推出)
|
|
5
|
+
Author-email: wxd123 <wxd123@users.noreply.github.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/wxd123/magic-sandbox
|
|
8
|
+
Classifier: Development Status :: 3 - Alpha
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Requires-Python: >=3.8
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
License-File: LICENSE
|
|
18
|
+
Dynamic: license-file
|
|
19
|
+
|
|
20
|
+
# magic-sandbox
|
|
21
|
+
**轻量级、可审计的 Python 沙箱**
|
|
22
|
+
安全执行不可信代码,守住所有危险操作的必经之路。
|
|
23
|
+
|
|
24
|
+
[](https://badge.fury.io/py/magic-sandbox)
|
|
25
|
+
[](https://opensource.org/licenses/MIT)
|
|
26
|
+
[](https://www.python.org/downloads/)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
## 项目状态
|
|
30
|
+
|
|
31
|
+
**开发中** - 首个正式版本将于 2026 年 Q3 发布
|
|
32
|
+
|
|
33
|
+
## 特性
|
|
34
|
+
|
|
35
|
+
- 🚀 **极轻量**:纯 Python 实现,零外部依赖,毫秒级启动。
|
|
36
|
+
- 🛡️ **纵深防御**:AST 静态分析 + 动态桩 + 声明式资源 + 可选子进程隔离。
|
|
37
|
+
- 📝 **完整审计**:所有危险操作(文件、网络、子进程、动态库)自动记录日志,不可篡改。
|
|
38
|
+
- 🧩 **声明式权限**:第三方代码必须预先声明所需资源(文件路径、网络域名等),越权即拦截。
|
|
39
|
+
- 🔁 **互为触发**:每一层防御都不是孤立的,突破 AST 会触发动态桩,攻击动态桩会被 AST 捕获。
|
|
40
|
+
- 🧪 **Dry-Run 模式**:在完全隔离的环境中模拟执行,观察行为而不产生真实副作用。
|
|
41
|
+
|
|
42
|
+
## 适用场景
|
|
43
|
+
|
|
44
|
+
- AI Agent / LLM 生成的代码执行
|
|
45
|
+
- 量化交易策略隔离
|
|
46
|
+
- 在线代码评测(Judge)
|
|
47
|
+
- 插件系统(IDE、CMS、数据处理平台)
|
|
48
|
+
- 低代码平台的自定义脚本
|
|
49
|
+
- 任何需要安全运行不可信 Python 代码的场景
|
|
50
|
+
|
|
51
|
+
## 安装
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
pip install magic_sandbox
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## 安全设计概览
|
|
58
|
+
|
|
59
|
+
| 防御层 | 技术 | 作用 |
|
|
60
|
+
|--------|------|------|
|
|
61
|
+
| 静态分析 | AST 扫描 | 禁止字符串拼接、危险属性(`__class__`)、高危函数(`eval`) |
|
|
62
|
+
| 动态桩 | 函数入口替换 | 前置校验参数、限流、dry-run 模拟 |
|
|
63
|
+
| 审计钩子 | `sys.addaudithook` | 底层不可绕过的监控,记录所有危险调用 |
|
|
64
|
+
| 声明式资源 | Manifest 校验 | 最小权限原则,越权即拦截 |
|
|
65
|
+
| 子进程隔离 | `subprocess` + `seccomp` | 可选模式,即使逃逸也无法影响主进程 |
|
|
66
|
+
| 审计日志 | 结构化 + SQLite | 完整记录攻击路径,防篡改 |
|
|
67
|
+
|
|
68
|
+
## 示例(待正式版本发布后补充)
|
|
69
|
+
> 示例代码将在正式版本发布时补充。
|
|
70
|
+
|
|
71
|
+
## 代码规范
|
|
72
|
+
本项目遵循以下基本原则:
|
|
73
|
+
|
|
74
|
+
1. 单文件不超过 200 行:超过时请拆分为多个模块
|
|
75
|
+
2. 单函数不超过 200 行:超过时请拆分为多个小函数
|
|
76
|
+
3. 注释尽量完整:关键逻辑、复杂算法、非显而易见的代码必须有注释说明
|
|
77
|
+
4. 如有特殊场景确实需要突破(如纯数据定义文件),可在 PR 中说明。
|
|
78
|
+
|
|
79
|
+
这些规则旨在保证代码的可读性和可维护性,便于合作,请尽量遵守。
|
|
80
|
+
|
|
81
|
+
## 针对 AI 辅助工具的提示
|
|
82
|
+
本项目使用 AI 辅助开发,请在生成代码时尽量遵守上述代码规范。
|
|
83
|
+
|
|
84
|
+
## 许可证
|
|
85
|
+
MIT License
|
|
86
|
+
|
|
87
|
+
## 作者
|
|
88
|
+
wxd123 - GitHub
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# magic-sandbox
|
|
2
|
+
**轻量级、可审计的 Python 沙箱**
|
|
3
|
+
安全执行不可信代码,守住所有危险操作的必经之路。
|
|
4
|
+
|
|
5
|
+
[](https://badge.fury.io/py/magic-sandbox)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
[](https://www.python.org/downloads/)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## 项目状态
|
|
11
|
+
|
|
12
|
+
**开发中** - 首个正式版本将于 2026 年 Q3 发布
|
|
13
|
+
|
|
14
|
+
## 特性
|
|
15
|
+
|
|
16
|
+
- 🚀 **极轻量**:纯 Python 实现,零外部依赖,毫秒级启动。
|
|
17
|
+
- 🛡️ **纵深防御**:AST 静态分析 + 动态桩 + 声明式资源 + 可选子进程隔离。
|
|
18
|
+
- 📝 **完整审计**:所有危险操作(文件、网络、子进程、动态库)自动记录日志,不可篡改。
|
|
19
|
+
- 🧩 **声明式权限**:第三方代码必须预先声明所需资源(文件路径、网络域名等),越权即拦截。
|
|
20
|
+
- 🔁 **互为触发**:每一层防御都不是孤立的,突破 AST 会触发动态桩,攻击动态桩会被 AST 捕获。
|
|
21
|
+
- 🧪 **Dry-Run 模式**:在完全隔离的环境中模拟执行,观察行为而不产生真实副作用。
|
|
22
|
+
|
|
23
|
+
## 适用场景
|
|
24
|
+
|
|
25
|
+
- AI Agent / LLM 生成的代码执行
|
|
26
|
+
- 量化交易策略隔离
|
|
27
|
+
- 在线代码评测(Judge)
|
|
28
|
+
- 插件系统(IDE、CMS、数据处理平台)
|
|
29
|
+
- 低代码平台的自定义脚本
|
|
30
|
+
- 任何需要安全运行不可信 Python 代码的场景
|
|
31
|
+
|
|
32
|
+
## 安装
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
pip install magic_sandbox
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## 安全设计概览
|
|
39
|
+
|
|
40
|
+
| 防御层 | 技术 | 作用 |
|
|
41
|
+
|--------|------|------|
|
|
42
|
+
| 静态分析 | AST 扫描 | 禁止字符串拼接、危险属性(`__class__`)、高危函数(`eval`) |
|
|
43
|
+
| 动态桩 | 函数入口替换 | 前置校验参数、限流、dry-run 模拟 |
|
|
44
|
+
| 审计钩子 | `sys.addaudithook` | 底层不可绕过的监控,记录所有危险调用 |
|
|
45
|
+
| 声明式资源 | Manifest 校验 | 最小权限原则,越权即拦截 |
|
|
46
|
+
| 子进程隔离 | `subprocess` + `seccomp` | 可选模式,即使逃逸也无法影响主进程 |
|
|
47
|
+
| 审计日志 | 结构化 + SQLite | 完整记录攻击路径,防篡改 |
|
|
48
|
+
|
|
49
|
+
## 示例(待正式版本发布后补充)
|
|
50
|
+
> 示例代码将在正式版本发布时补充。
|
|
51
|
+
|
|
52
|
+
## 代码规范
|
|
53
|
+
本项目遵循以下基本原则:
|
|
54
|
+
|
|
55
|
+
1. 单文件不超过 200 行:超过时请拆分为多个模块
|
|
56
|
+
2. 单函数不超过 200 行:超过时请拆分为多个小函数
|
|
57
|
+
3. 注释尽量完整:关键逻辑、复杂算法、非显而易见的代码必须有注释说明
|
|
58
|
+
4. 如有特殊场景确实需要突破(如纯数据定义文件),可在 PR 中说明。
|
|
59
|
+
|
|
60
|
+
这些规则旨在保证代码的可读性和可维护性,便于合作,请尽量遵守。
|
|
61
|
+
|
|
62
|
+
## 针对 AI 辅助工具的提示
|
|
63
|
+
本项目使用 AI 辅助开发,请在生成代码时尽量遵守上述代码规范。
|
|
64
|
+
|
|
65
|
+
## 许可证
|
|
66
|
+
MIT License
|
|
67
|
+
|
|
68
|
+
## 作者
|
|
69
|
+
wxd123 - GitHub
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=77.0"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "magic-sandbox"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "占位包:Magic-sandbox 轻量级python沙箱工具(即将推出)"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "MIT"
|
|
11
|
+
license-files = ["LICENSE"]
|
|
12
|
+
authors = [
|
|
13
|
+
{ name = "wxd123", email = "wxd123@users.noreply.github.com" }
|
|
14
|
+
]
|
|
15
|
+
classifiers = [
|
|
16
|
+
"Development Status :: 3 - Alpha",
|
|
17
|
+
"Programming Language :: Python :: 3",
|
|
18
|
+
"Programming Language :: Python :: 3.8",
|
|
19
|
+
"Programming Language :: Python :: 3.9",
|
|
20
|
+
"Programming Language :: Python :: 3.10",
|
|
21
|
+
"Programming Language :: Python :: 3.11",
|
|
22
|
+
"Programming Language :: Python :: 3.12",
|
|
23
|
+
]
|
|
24
|
+
requires-python = ">=3.8"
|
|
25
|
+
dependencies = [] # 如果有依赖,在这里添加
|
|
26
|
+
|
|
27
|
+
[project.urls]
|
|
28
|
+
Homepage = "https://github.com/wxd123/magic-sandbox"
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
[dependency-groups]
|
|
35
|
+
dev = [
|
|
36
|
+
"build>=1.2.2.post1",
|
|
37
|
+
"twine>=6.1.0",
|
|
38
|
+
]
|
|
File without changes
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: magic-sandbox
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: 占位包:Magic-sandbox 轻量级python沙箱工具(即将推出)
|
|
5
|
+
Author-email: wxd123 <wxd123@users.noreply.github.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/wxd123/magic-sandbox
|
|
8
|
+
Classifier: Development Status :: 3 - Alpha
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Requires-Python: >=3.8
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
License-File: LICENSE
|
|
18
|
+
Dynamic: license-file
|
|
19
|
+
|
|
20
|
+
# magic-sandbox
|
|
21
|
+
**轻量级、可审计的 Python 沙箱**
|
|
22
|
+
安全执行不可信代码,守住所有危险操作的必经之路。
|
|
23
|
+
|
|
24
|
+
[](https://badge.fury.io/py/magic-sandbox)
|
|
25
|
+
[](https://opensource.org/licenses/MIT)
|
|
26
|
+
[](https://www.python.org/downloads/)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
## 项目状态
|
|
30
|
+
|
|
31
|
+
**开发中** - 首个正式版本将于 2026 年 Q3 发布
|
|
32
|
+
|
|
33
|
+
## 特性
|
|
34
|
+
|
|
35
|
+
- 🚀 **极轻量**:纯 Python 实现,零外部依赖,毫秒级启动。
|
|
36
|
+
- 🛡️ **纵深防御**:AST 静态分析 + 动态桩 + 声明式资源 + 可选子进程隔离。
|
|
37
|
+
- 📝 **完整审计**:所有危险操作(文件、网络、子进程、动态库)自动记录日志,不可篡改。
|
|
38
|
+
- 🧩 **声明式权限**:第三方代码必须预先声明所需资源(文件路径、网络域名等),越权即拦截。
|
|
39
|
+
- 🔁 **互为触发**:每一层防御都不是孤立的,突破 AST 会触发动态桩,攻击动态桩会被 AST 捕获。
|
|
40
|
+
- 🧪 **Dry-Run 模式**:在完全隔离的环境中模拟执行,观察行为而不产生真实副作用。
|
|
41
|
+
|
|
42
|
+
## 适用场景
|
|
43
|
+
|
|
44
|
+
- AI Agent / LLM 生成的代码执行
|
|
45
|
+
- 量化交易策略隔离
|
|
46
|
+
- 在线代码评测(Judge)
|
|
47
|
+
- 插件系统(IDE、CMS、数据处理平台)
|
|
48
|
+
- 低代码平台的自定义脚本
|
|
49
|
+
- 任何需要安全运行不可信 Python 代码的场景
|
|
50
|
+
|
|
51
|
+
## 安装
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
pip install magic_sandbox
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## 安全设计概览
|
|
58
|
+
|
|
59
|
+
| 防御层 | 技术 | 作用 |
|
|
60
|
+
|--------|------|------|
|
|
61
|
+
| 静态分析 | AST 扫描 | 禁止字符串拼接、危险属性(`__class__`)、高危函数(`eval`) |
|
|
62
|
+
| 动态桩 | 函数入口替换 | 前置校验参数、限流、dry-run 模拟 |
|
|
63
|
+
| 审计钩子 | `sys.addaudithook` | 底层不可绕过的监控,记录所有危险调用 |
|
|
64
|
+
| 声明式资源 | Manifest 校验 | 最小权限原则,越权即拦截 |
|
|
65
|
+
| 子进程隔离 | `subprocess` + `seccomp` | 可选模式,即使逃逸也无法影响主进程 |
|
|
66
|
+
| 审计日志 | 结构化 + SQLite | 完整记录攻击路径,防篡改 |
|
|
67
|
+
|
|
68
|
+
## 示例(待正式版本发布后补充)
|
|
69
|
+
> 示例代码将在正式版本发布时补充。
|
|
70
|
+
|
|
71
|
+
## 代码规范
|
|
72
|
+
本项目遵循以下基本原则:
|
|
73
|
+
|
|
74
|
+
1. 单文件不超过 200 行:超过时请拆分为多个模块
|
|
75
|
+
2. 单函数不超过 200 行:超过时请拆分为多个小函数
|
|
76
|
+
3. 注释尽量完整:关键逻辑、复杂算法、非显而易见的代码必须有注释说明
|
|
77
|
+
4. 如有特殊场景确实需要突破(如纯数据定义文件),可在 PR 中说明。
|
|
78
|
+
|
|
79
|
+
这些规则旨在保证代码的可读性和可维护性,便于合作,请尽量遵守。
|
|
80
|
+
|
|
81
|
+
## 针对 AI 辅助工具的提示
|
|
82
|
+
本项目使用 AI 辅助开发,请在生成代码时尽量遵守上述代码规范。
|
|
83
|
+
|
|
84
|
+
## 许可证
|
|
85
|
+
MIT License
|
|
86
|
+
|
|
87
|
+
## 作者
|
|
88
|
+
wxd123 - GitHub
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
magic_sandbox
|