文章摘要
文章核心内容:谷歌开发者Paul Kinlan探讨了浏览器作为代码代理沙箱的潜力,指出浏览器30年来已具备运行不受信任代码的能力。他通过Co-do实验项目验证浏览器技术(文件系统API、沙箱iframe、WebAssembly等)能否满足沙箱三大需求:文件系统、网络访问和安全代码执行。
文章总结
浏览器即沙盒:探索网页作为安全执行环境的潜力
谷歌Web平台开发者倡导者Paul Kinlan近期将研究重心转向编程代理领域,他敏锐地意识到构建安全沙盒环境的重要性,并撰文详述浏览器如何成为理想解决方案:
浏览器作为历经30年演进的沙盒环境,其核心设计目标就是安全执行来自互联网任意来源的不可信代码。基于此,我开发了Co-do实验项目,验证浏览器能否替代传统容器技术(如Claude Cowork使用的多GB本地容器)来实现文件协作功能。
关键技术实现方案:
1. 文件系统:通过实验性File System Access API(目前仅Chrome支持)和跨平台可用的<input type="file" webkitdirectory>标签实现目录级文件访问
2. 网络隔离:采用CSP安全策略与独特的双层iframe技术构建网络访问控制层
3. 代码执行:结合Web Workers和WebAssembly实现安全计算环境
Co-do应用演示: - 用户可选择本地文件夹并配置LLM服务商API密钥 - 系统通过合规API调用实现智能文件处理(如图中展示的"查询最近修改文件"功能) - 界面包含实时工作区状态显示、文件树导航和AI交互面板
技术亮点:
- <iframe sandbox>的深度应用(尽管各浏览器文档支持仍不完善)
- 新发现的webkitdirectory属性在Firefox/Safari/Chrome的跨平台兼容性
- 作者基于该技术开发的文件树演示工具展示了处理12,000+文件的实际能力
(注:原文中的两幅界面截图描述已精简,保留核心功能说明)
评论总结
评论总结:
- 支持浏览器作为沙箱的观点
- 认为浏览器经过长期实战检验,具备成熟的沙箱机制 "Browser sandboxing has been battle-tested by billions of users" (augusteo) "Browsers are one of the most robust and widely available sandboxing system" (lewisjoe)
- 指出WebAssembly等技术增强了浏览器的安全能力 "WebAssembly to become the ultimate sandbox standard" (stevefan1999) "A way to run third party code safely in wasm containers" (lewisjoe)
- 反对浏览器作为理想沙箱的观点
- 认为浏览器攻击面过大,存在安全隐患 "Browser sandboxes are swiss cheese...75 zero-day exploits in 2024" (0xbadcafebee) "Browsers are closer to operating systems rather than sandboxes" (politelemon)
- 指出功能限制问题 "No system calls, no arbitrary binaries...for others it's a dealbreaker" (augusteo) "Chrome-only features can't represent browser标准" (utopiah)
- 替代方案建议
- 推荐使用独立计算机/云实例 "A nano EC2 instance is like $5/m" (bob1029)
- 建议使用系统级沙箱 "systemd and Linux user permissions/groups...fairly low cost" (ijustlovemath)
- 提出git worktree等特定解决方案 "git worktree is useful...easy to see what the AI did" (zephen)
- 技术实践案例
- 浏览器中运行完整Linux环境 "We applied...to provide a full Linux environment" (ridruejo) "jslinux and x86 linux examples allow running complete linux env" (anilgulecha)
- 文件系统访问API的局限性 "user would have to manually re-grant permission every time" (modeless)
关键分歧点: - 支持方强调浏览器的成熟度和便利性:"easy to use and easy to deploy" (0xbadcafebee) - 反对方强调安全风险:"the worst security paradigm" (0xbadcafebee)