入門基礎

API Key 是什麼?為什麼不能公開?

API Key 可以先理解成 AI 服務的通行證。新手做 AI 工具前,一定要知道它不能放在前端,也不能直接 commit 到公開 GitHub。

API Key 不是普通代碼,而是服務通行證

當你開始使用 OpenAI API 或其他 AI 服務時,很快會看到一串看起來很長的文字。那通常就是 API Key。它不是給使用者看的教學範例,也不是可以隨便貼在網頁上的識別碼。

你可以先把 API Key 理解成「服務通行證」。你的程式拿著這把通行證去呼叫 AI 服務,AI 服務看到這把通行證,就知道這次請求是誰發出的、應該算到哪個帳號、可不可以使用這個功能。

這跟一般上班族有什麼關係?如果你只是用 ChatGPT 網站,通常不會碰到 API Key。但只要你想做自己的 AI 工具,例如履歷分析器、PDF 摘要工具、客服 FAQ Bot,就會進入「程式幫你呼叫 AI」的階段。這時候 API Key 就會出現。

很多新手第一次做 AI 小作品時,最容易犯的錯不是模型不懂,也不是 Prompt 寫不好,而是把 API Key 放錯地方。這個錯誤一旦發生,輕則服務被停用,重則別人可能拿你的額度去呼叫服務。

基本觀念

API Key 是你的程式呼叫 AI 服務時使用的通行證

使用者不應該直接看到 API Key。它應該留在安全的伺服器環境,由後端替前端呼叫 AI 服務。

API Key 很像密碼,但它不是拿來登入網站的密碼

API Key 跟密碼很像,因為它都能代表某種權限。差別在於,密碼通常是人拿來登入帳號,API Key 通常是程式拿來呼叫服務。

這個差別很重要。你不會把自己的帳號密碼貼在公開網頁上,同樣也不應該把 API Key 放在任何使用者可以看到的地方。對 AI 工具來說,API Key 通常應該放在後端環境變數裡,而不是寫死在前端程式碼。

環境變數可以先理解成「伺服器私下保存的設定」。例如你的後端知道 OpenAI API Key 是什麼,但前端畫面不會直接拿到這串 Key。使用者只會看到輸入框、按鈕和結果,不會看到工具背後用哪把 Key 呼叫服務。

如果你未來想做作品集,這個觀念會直接影響別人怎麼看你的專業度。會不會做出炫麗畫面是一回事,會不會保護基本金鑰和權限,是另一個更實際的能力。

為什麼不能把 API Key 放在前端?因為前端會被使用者看見

前端是使用者瀏覽器裡會下載和執行的程式。你看到的網頁畫面、按鈕、互動效果,大多都在前端。問題也在這裡:只要東西被送到使用者的瀏覽器,就有機會被查看。

如果你把 API Key 寫在前端,等於把通行證交到每個使用者手上。一般使用者可能不會看,但懂一點技術的人可以透過瀏覽器開發者工具或打包後的檔案找到它。

這就是為什麼 AI 工具通常不應該由前端直接帶著 API Key 呼叫 OpenAI API。比較安全的做法是:前端把使用者輸入送到你的後端,後端再用環境變數裡的 API Key 去呼叫 AI 服務,最後把結果回傳給前端。

這個設計不是為了讓事情變複雜,而是為了保護你的帳號、額度和服務穩定性。新手如果一開始就懂這件事,後面做作品會少踩很多坑。

錯誤與正確

不要讓前端直接拿到 API Key

前端負責收集輸入和顯示結果,後端才是保存 Key 和呼叫 AI 服務的位置。

為什麼不能把 API Key commit 到 GitHub?因為程式碼可能被公開或被掃描

很多人第一次學 GitHub 時,會把整個專案直接上傳。這本身沒錯,問題是如果你把 API Key 寫在程式碼或設定檔裡,又一起 commit 上去,就等於把通行證放進版本紀錄。

更麻煩的是,就算你後來把那一行刪掉,Git 的歷史紀錄裡可能仍然留下舊版本。這也是為什麼金鑰一旦被公開,通常比較安全的處理方式是直接停用舊 Key,重新產生新的 Key,而不是只把畫面上的文字刪掉。

新手做 AI 小作品時,至少要建立兩個習慣。第一,不要把 `.env.local` 這類環境變數檔案 commit。第二,不要把 API Key 直接寫進一般程式碼裡。

你不一定要一開始懂完整資安流程,但這條底線要先記住:任何能代表帳號權限、服務用量或付費額度的東西,都不要放進公開程式碼。

API Key 外流後,可能發生什麼事?

API Key 外流不一定代表你的人生完蛋,但它不是小事。因為拿到 Key 的人,可能可以用你的帳號去呼叫服務。這些請求可能算在你的用量裡,也可能影響你的服務穩定性。

對個人學習者來說,最直觀的風險是額度被消耗。對未來要做產品的人來說,風險還包括服務被濫用、帳號被限制、使用者體驗被影響。

這就是為什麼這篇要放在入門基礎,而不是等到很後面才講。AI 工具不是只要能跑就好。能不能安全地跑、能不能交給別人用、出了問題能不能追查,都是作品成熟度的一部分。

如果你想把作品放進履歷或作品集,這個觀念也會幫你加分。你可以不只說「我會串 OpenAI API」,還可以說「我知道 API Key 應該放在後端環境變數,避免暴露在前端和公開儲存庫」。這句話比單純展示畫面更有工程思維。

風險路徑

API Key 外流不是名詞問題,而是帳號權限問題

新手最該先避開的不是複雜攻擊,而是把 Key 放到公開位置。

新手做 AI 小工具時,可以先記這個安全流程

比較安全的基本流程是:使用者在前端輸入內容,前端把資料送到你的後端,後端從環境變數讀取 API Key,再呼叫 OpenAI API 或其他 AI 服務。AI 回答後,後端整理結果,再回傳給前端顯示。

這個流程聽起來比直接在前端呼叫 API 多一步,但這一步很重要。它把「使用者能看見的地方」和「系統私下保存權限的地方」分開。

你可以把它想成公司櫃檯和內部辦公室的關係。前端像櫃檯,負責接收需求和回覆結果。後端像內部辦公室,負責處理真正的流程。API Key 不應該放在櫃檯桌上,而是放在內部能管理的地方。

等你後面學到 API、JSON、Python、前端和後端時,這篇文章就會開始接起來。你會知道為什麼不是每段程式都可以直接放前端,也會知道為什麼作品集裡的安全設計,會比你想像中更重要。

重點整理

  • API Key 可以理解成程式呼叫 AI 服務時使用的通行證。
  • API Key 不應該放在前端,因為前端程式會被送到使用者瀏覽器。
  • API Key 不應該 commit 到公開 GitHub,因為它可能留在程式碼或版本紀錄裡。
  • 比較安全的做法是讓後端從環境變數讀取 Key,再由後端呼叫 AI API。
  • 懂得保護 API Key,是新手從「會做 Demo」走向「能做可交付工具」的重要一步。