開發與網路
Environment Variables 環境變數是什麼?藏秘密的保險箱檔案
Environment Variables 環境變數是什麼?藏秘密的保險箱檔案
把 API 金鑰直接寫在程式碼裡,是新手最常犯、代價也最貴的錯。程式碼一旦上傳到公開平台,所有人都看得到你的秘密。
解法很成熟:把秘密寫在一個叫 .env 的隱藏檔案裡,讓程式去讀。這一招學會,你的專案就從危險變安全。
你將學到什麼
定義
程式執行時由系統提供的鍵值對,用來存放金鑰、密碼與各環境的設定值。
白話比喻
像一個保險箱檔案。程式碼可以公開,保險箱裡的東西不公開。
跟誰容易搞混
跟寫死在程式碼裡相對。寫死叫 Hardcoding,是資安災難的起點。
定義
環境變數是一組鍵值對,在程式執行時由系統提供給應用程式使用。它可以根據不同環境設定不同的值,開發一組、測試一組、正式一組,程式碼本身完全不用改。
實務上會把這些鍵值對寫在專案根目錄的 .env 檔案裡,例如 AI 服務金鑰、資料庫連線字串、加密金鑰、郵件服務金鑰與專案網址。
一句話記住原則:程式碼可以公開,你的秘密不要公開。
白話比喻
把它想成藏秘密的保險箱檔案。房子可以帶人參觀,保險箱不打開。程式碼是房子,.env 是保險箱。
錯誤示範是把金鑰與密碼直接寫在程式檔案裡,這叫 Hardcoding。程式碼一旦上傳到公開平台,所有人都看得到你的秘密,別人可以拿你的金鑰去用,帳單卻算在你頭上。
寫死在程式碼跟放在 .env 差在哪?
| 比較點 | 寫死在程式碼裡 | 放在 .env 檔案中 |
|---|---|---|
| 秘密會不會外洩 | 會,上傳就全公開 | 不會,檔案不進版本控制 |
| 切換環境 | 要改程式碼 | 改設定值即可 |
| 更換金鑰 | 要找出每一處引用 | 改一個地方就好 |
| 團隊協作 | 秘密散落在各檔案 | 集中管理,好交接 |
| 風險等級 | 高,是典型的資安災難 | 低,屬於標準做法 |
實際用例
最佳實踐有五條:絕不把秘密寫在程式碼裡、使用 .env 存放敏感資訊、把 .env 加進 .gitignore 避免被上傳、不同環境使用不同設定、定期更換金鑰與秘密降低風險。
讀取方式依語言而異。Node 生態安裝 dotenv 套件後載入,再從執行環境取值;Python 安裝 python-dotenv 後載入,再用取環境變數的方式讀出來。兩邊的概念完全一樣。
你保管的通常是 API Key 這類長期有效的憑證,一旦外流別人就能直接用。所以「不要寫進程式碼」不是講究,是底線。
延伸學習
寫給升國一的你的筆記術
寫給剛升上國中的你:筆記不是寫給老師看的,是寫給考前的自己看的。18 章 85 課圖文,從「為什麼要寫」講到七科各自怎麼記,附 78 份可以印出來寫的練習單,以及 80 課家長專區與 34 張三年筆記養成路徑圖。沒有閱讀期限,國一買、國三還在。
NT$ 3,599
HE201|Harness Engineering System Design(6 小時)
六小時的實作課:從 Blueprint 走到可以跑的規格,再用 No-code、n8n 低程式碼與程式碼三條路各做一次同一個 harness,最後處理可靠度——重試、錯誤處理、人工覆核。7 章 54 課,含常見坑與排錯、Capstone 實作,附學員講義 PDF。
NT$ 5,999

