Codex沙箱新版旧版权威对比:安全性权限差异解析
实事求是地讲,这次Codex新版沙箱在安全隔离与权限管控上做了实质性升级——不仅引入了更细粒度的写入模式,还调整了审批策略的默认行为,网络访问控制的逻辑也经过了重构。升级前务必吃透这些变更的具体影响,否则自动化脚本突然中断运行就棘手了。
沙箱模式新增 workspace-write 模式
旧版本只提供了两个极端选项:read-only 完全禁止写入,danger-full-access 则直接开放整个磁盘。坦白讲,这两种模式在日常开发中要么过于保守,要么风险过高。
新版本在中间层引入了 workspace-write 模式,该模式仅允许修改当前工作目录及其子目录内的文件,父目录和系统路径一律拒绝写入。相当于你拿到一把只能开特定房门的钥匙,其他区域无法访问。
启用方式非常直接:在终端执行 codex config set sandbox.mode workspace-write。
典型场景:你正在管理一个 Git 项目,希望 AI 自动编辑 src/ 和 tests/ 下的代码,同时绝对禁止 AI 触碰 .git/ 或 /etc/ 这类敏感目录。此时 workspace-write 是唯一合理的选项——read-only 无法保存改动,danger-full-access 又可能误删关键配置。如何选择,不言自明。
权限审批策略默认值变更
新版本将 approval_policy 的默认值从 "never" 改为 "untrusted"。这一调整影响显著。
如果你不修改配置,直接运行 codex run --task "refactor auth module",系统会自动进入交互式确认流程——像 chmod、rm、curl 这类高危操作都会弹出确认提示。对生产环境而言,这确实增加了一层安全防护。
当然,如果你坚持沿用旧习惯,可以显式覆盖:codex config set permissions.approval_policy never。但需要提醒:该设置自 2025 年 10 月起已被标记为“不推荐”,而且部分新指令(例如自动提交 PR 的操作)会强制忽略该策略,要求人工确认。说白了,旧路径迟早行不通。
网络访问控制逻辑重构
这个改动比较隐蔽,但波及范围很广。改造之前,先看操作步骤:
第一步:打开 ~/.codex/config.json
第二步:找到 network.allowDomains 字段
第三步:注意——空数组 [] 在新版中被解析为“仅允许 localhost 和 127.0.0.1”,不再是旧版中“彻底切断网络”的含义。
旧版本里,[] 意味着所有外网请求被拦截;新版本则保留了本地服务调用的能力。举个例子,如果你需要访问本地 Docker API(unix:///var/run/docker.sock)或前端开发服务器(http://localhost:3000),这一变更能避免任务因 curl 超时而卡死。老实说,这个设计更贴近实际开发场景——毕竟谁没用过本地 mock 服务做集成测试呢?
如果你仍需完全禁用网络,必须显式设置为 ["none"]——这是新版中唯一被识别为“全阻断”的字符串值。其他任何写法均无效。
