看了下 Deno Sandbox,它防止 agent 泄露密钥的设计挺巧妙的。
你在创建沙盒时配置 API Key,但它不会被写进环境变量。代码读到的只是一个占位符,类似 `DENO_SECRET_PLACEHOLDER_b14043a2...`,一串没有实际意义的字符串。
沙盒所有出站请求都必须经过一个透明代理,这个代理干两件事:一是核对目标地址是否在你预设的白名单里,不在的直接拦掉;二是把占位符替换成真实密钥。
即使 agent 被 prompt 注入攻击了,生成的恶意代码想把密钥发到攻击者服务器,要么被白名单挡住,要么对方收到的也只是一串废字符。真实密钥只在代理层,沙盒内的 agent 或恶意代码全程接触不到。