沙盒模式:YOLO 速度遇上真实安全
Source: Dev.to
请提供您希望翻译的具体文本内容,我将按照要求保留源链接、格式和代码块进行简体中文翻译。
沙盒模式:YOLO 速度遇上真实安全
一次性定义边界。Claude 在这些边界内自由工作。
权限问题
如果你在任何严肃的工作中使用过 Claude Code,你一定了解权限的“舞蹈”。Claude 在执行可能有风险的操作前会先询问,这让你保持控制权,但不断的中断会成为生产力的毒药。
“我可以运行 npm install 吗?” [Allow]
“我可以读取这个文件吗?” [Allow]
每个会话点击 Allow 上百次并不是安全——那是表演。真正的安全来自于事先明确的边界定义,而不是靠肌肉记忆点击。
沙盒模式是什么
沙盒模式让你一次性定义安全周界。在该周界内部,Claude 可以自由操作;在周界之外,则被锁定。
- 再也不会因为每一次文件写入、命令执行或系统交互而弹出权限提示。
- 你可以在保持外部世界安全的同时,让 Claude 全速运行。
启用沙盒模式
# 启动一个沙盒会话
/sandbox
或直接以沙盒模式启动 Claude Code:
claude --sandbox
系统会提示你配置边界:
🔒 沙盒配置
允许的目录(读/写):
> ./src, ./tests, ./docs
允许的命令:
> npm *, yarn *, pnpm *, git status, git diff
阻止的路径:
> .env*, **/secrets/*, ~/.ssh
最大文件大小:1 MB
网络访问:已禁用
预设配置文件
开箱即用的常见沙盒配置文件:
/sandbox --preset frontend
启用典型前端开发权限:npm/yarn 命令、src 目录访问、构建工具等。
/sandbox --preset conservative
最小权限:大多数文件只读,写入需显式批准。
/sandbox --preset project
使用项目根目录下 .claude/sandbox.json 中的沙盒配置。
项目级沙盒配置
将沙盒设置存放在 .claude/sandbox.json,让每位团队成员获得相同的安全默认值。
{
"allowedPaths": ["./src", "./tests", "./scripts"],
"blockedPaths": [".env*", "**/*.key", "**/credentials*"],
"allowedCommands": ["npm test", "npm run build", "npm run lint"],
"blockedCommands": ["rm -rf", "curl", "wget"],
"networkAccess": false
}
区分读写权限
{
"readPaths": ["./**"],
"writePaths": ["./src", "./tests"]
}
审计沙盒活动
/sandbox --log
显示 Claude 在沙盒内执行的所有操作——对安全审查和了解 AI 行为非常有用。
临时扩展
需要短暂允许沙盒外的某些操作吗?使用一次性授权,而不是重新配置全部内容:
/allow-once npm publish
实际使用案例
“我会让 Claude 更新我们的组件库。它需要修改 15 个包中的文件,运行测试,更新快照,检查类型,并修复 lint。每一个动作都需要权限。我数了 73 次权限提示才完成一次重构任务。我开始只是盲目点击 Allow。”
使用沙盒模式后,开发者配置了:
{
"allowedPaths": ["./packages/ui/**", "./packages/shared/**"],
"allowedCommands": [
"npm test -- --updateSnapshot",
"npm run typecheck",
"npm run lint -- --fix"
],
"blockedPaths": ["**/package.json", "**/tsconfig.json"]
}
现在,沙盒在会话开始时只设置一次。Claude 在这些边界内自由重构,开发者审查实际的代码更改,而不是权限对话框;配置还能防止意外的危险操作。
结论
沙盒模式是正确的安全实现方式。与其面对成百上千容易被忽视的小权限,你只需对边界做出少量慎重的决定。Claude 获得高效工作的自由,你保持安心,工作流也不被打断。
定义你的墙壁,让 Claude 在其中构建。