36 lines
1.2 KiB
Plaintext
36 lines
1.2 KiB
Plaintext
---
|
|
title: "沙箱机制"
|
|
description: "即使命令被允许执行,也不意味着它可以为所欲为"
|
|
---
|
|
|
|
{/* 本章目标:解释沙箱的作用和原理 */}
|
|
|
|
## 权限之外的第二道防线
|
|
|
|
权限系统决定"这条命令能不能执行",沙箱决定"执行时能做到什么程度"。
|
|
|
|
即使一条命令通过了权限审批,沙箱仍然可以限制它的行为:
|
|
|
|
| 限制维度 | 说明 |
|
|
|----------|------|
|
|
| **文件系统** | 只能访问项目目录及其子目录 |
|
|
| **网络** | 可以禁止或限制网络访问 |
|
|
| **进程** | 限制可启动的子进程 |
|
|
| **时间** | 超时自动终止 |
|
|
|
|
## 何时启用沙箱
|
|
|
|
沙箱不是默认对所有命令生效——它根据风险评估动态决定:
|
|
|
|
- 用户显式请求禁用沙箱的命令(`dangerouslyDisableSandbox`)不走沙箱
|
|
- 已通过安全规则白名单的命令可以跳过沙箱
|
|
- 未知命令或高风险命令强制进入沙箱
|
|
|
|
## 沙箱的实现思路
|
|
|
|
不同平台使用不同的沙箱技术:
|
|
|
|
- **macOS**:利用系统级沙箱机制限制文件和网络访问
|
|
- **Linux**:基于命名空间和 cgroup 的进程隔离
|
|
- 沙箱策略由系统自动选择,用户不需要手动配置
|