最新消息:关注人工智能 AI赋能新媒体运营

JavaScript执行环境Deno沙箱上线,通过轻量级虚拟机隔离不可信代码

科技资讯 admin 浏览

JavaScript/TypeScript 执行环境 Deno 推出 Deno Sandbox,让开发团队能够在 Deno Deploy 云端平台通过 Linux 微虚拟机隔离运行不可信代码,并通过统一机制管控对外连接与 API 密钥等敏感信息的使用和泄露风险。

Deno 创始人 Ryan Dahl 表示,过去一年 Deno Deploy 客户的应用形态发生转变,越来越多平台允许用户通过 LLM 生成代码后立即执行,这些代码往往还会调用 LLM 或其他外部 API,因此需要 API 密钥和网络访问权限。在缺乏人工审查的场景下,风险不仅在于不可信代码可能影响执行环境本身,还包括敏感信息被读取后外传,以及代码向不该连接的目标发起请求。Deno Sandbox 正是为此类需求设计。

Deno Sandbox 采用轻量级 Linux 微虚拟机,部署在 Deno Deploy 云端,官方表示其启动时间小于 1 秒,并提供 JavaScript 和 Python SDK 来创建和管理沙箱。除了程序化操作,用户也可通过 SSH 连接,或通过 HTTP 方式访问沙箱暴露的服务,并可直接打开 VS Code 窗口进入环境。

其安全设计聚焦于两点:第一,敏感信息不以明文形式进入沙箱环境,包括环境变量。程序在沙箱中只能看到占位符字符串,而非真实的密钥内容,真正的密钥仅在沙箱向授权主机发起外部请求时,在网络层动态注入使用。Deno 的意图是降低因提示注入或恶意程序读取密钥后直接外传的风险,因为即使恶意程序试图将占位符发送至非授权域名,占位符本身也不包含可用的敏感信息。

第二是网络出站白名单,用户可指定允许连接的主机或域名,未列入的请求将在虚拟机边界被拦截。官方也说明,敏感信息保护与出站控制均通过单一的出站代理实现,后续计划加入出站流量分析能力,并提供 API 让可信程序查看或修改出站请求。

Deno 也将交付流程纳入设计,Deno Sandbox 提供 sandbox.deploy,让开发者可直接将沙箱中的程序部署到 Deno Deploy。官方表示,这避免了将相同项目再迁移到另一套 CI 流程重新构建,或在不同工具间重复进行身份验证与授权配置。

Deno Sandbox 默认为短生命周期的临时环境,但提供存储卷(Volume)作为可读写存储,并支持通过存储卷创建只读快照镜像。目前官方列出的可用区域为阿姆斯特丹与芝加哥,单个沙箱配置 2 vCPU,内存范围为 768 MB 至 4 GB。沙箱可设为临时型或设置超时时间,并支持按需延长,最长生命周期为 30 分钟。