~/VibeHandbook
免費 PDF

04 · 06

API key 與認證 header

大多數有用的 並不對全世界開放。公司需要知道是誰在提問,這樣他們才能統計用量並向你收費。他們會給你一個 API key——一長串能標識你賬戶的金鑰字串。你把它附在每個請求上,通常放在一個叫 Authorization header 裡,就像上面那行 Bearer sk_live_...

把 API key 完全當成密碼來對待,因為它本來就是密碼。任何拿到它的人都能以你的身份發請求——並刷爆你的賬單或讀走你的資料。這直接關聯到安全那一章,而其中最重要的有一條規則:

  • **絕不要把 API key 放進會發到瀏覽器裡的程式碼。**你前端裡的任何東西都是公開的——使用者可以開啟開發者工具讀到它。AI 被要求"從頁面裡呼叫 API"時,會樂呵呵地把你的金鑰直接貼在那兒。攔住它。金鑰屬於伺服器
  • **絕不要把 key 提交進 。**就算你之後刪掉它,它也會永遠活在歷史記錄裡,而機器人會在幾分鐘內掃描公開倉庫裡的 key。
  • 把 key 存在環境變數裡,而不是程式碼本身裡——這和安全那一章講的是同一個模式。

key 必須從一個安全的地方出發,絕不能從瀏覽器出發。設想一下這兩條路——一條安全,一條洩露:

   安全 ✓                                  洩露 ✗
   ┌──────────┐ key    ┌──────────┐        ┌──────────┐ key   ┌──────────┐
   │  伺服器  │ ───▶   │   API    │        │  瀏覽器  │ ──▶   │   API    │
   │ (你的    │保密    │          │        │ (任何人  │       │          │
   │ 後端)    │        │          │        │ 都能     │       │          │
   └──────────┘        └──────────┘        │ 看到)    │       └──────────┘
   key 在環境變數裡                        └──────────┘
                                           前端裡的 key = 公開

如果你哪天看到一個真實的 key 出現在一段 diff 裡、一個前端檔案裡、或一條聊天訊息裡,就把它當成已經洩露了:立刻輪換它(生成一個新的,停用舊的)。

想離線閱讀?

免費下載整本書的 PDF 或 EPUB。