易混淆對照
環境變數跟寫死在程式碼差在哪?金鑰外洩最常見的那條路
環境變數跟寫死在程式碼差在哪?金鑰外洩最常見的那條路
新手最常犯的資安錯誤不是被駭客攻破系統,而是自己把金鑰寫進程式碼、推上網路,等於主動把鑰匙送給全世界。
你將學到什麼
一句話定義
環境變數把秘密放在程式碼之外,寫死則是把秘密直接打進原始碼裡。
白話比喻
一個是把鑰匙收進保險箱只在需要時拿出來用,一個是把鑰匙焊死在大門上。
最容易踩的坑
把 .env 忘記加進忽略清單,跟著程式碼一起上傳,等於保險箱也一起送出去了。
一句話核心觀念
寫死在程式碼是把秘密直接打進原始碼裡,一旦程式碼曝光,秘密就跟著曝光。環境變數是把秘密存放在程式碼之外的獨立設定檔,讀取時才動態載入,程式碼本身完全不含秘密。
核心差異比較
| 比較項目 | Hardcoding 寫死在程式碼 | 環境變數 .env |
|---|---|---|
| 是否曝光 | 高風險,隨程式碼一起曝光 | 幾乎不會曝光 |
| 可管理性 | 改一次要改所有地方 | 不同環境可分開設定 |
| 上傳到版本控制 | 金鑰會跟著被公開 | .env 不會被上傳 |
| 協作開發 | 容易互相蓋掉、衝突 | 各自本地設定,互不干擾 |
| 專業度 | 新手做法,風險高 | 業界標準做法 |
新手災難是怎麼發生的
血淚流程通常是四步:寫完程式,把金鑰直接打在程式碼裡;把程式碼推上像 GitHub 這樣的平台;金鑰掠奪機器人幾秒內掃描到公開的金鑰特徵字串;帳單在幾分鐘內就被刷爆,而使用者往往還沒發現,錢已經被花光了。
正確做法怎麼做
正確做法有兩步:第一步在獨立的環境變數檔案中存放秘密,這份檔案絕對不上傳;第二步在程式碼中讀取環境變數,讓真正的秘密只存在於這個獨立檔案,不出現在任何一行程式碼裡。
開發者黃金守則包括秘密永遠不進入程式碼、所有秘密放進環境變數檔、把這個檔案加入版本控制的忽略清單、不同環境使用不同設定,以及定期更換金鑰。
延伸學習
HE201|Harness Engineering System Design(6 小時)
六小時的實作課:從 Blueprint 走到可以跑的規格,再用 No-code、n8n 低程式碼與程式碼三條路各做一次同一個 harness,最後處理可靠度——重試、錯誤處理、人工覆核。7 章 54 課,含常見坑與排錯、Capstone 實作,附學員講義 PDF。
NT$ 5,999
HE301|Harness Engineering Architecture(12 小時)
兩天十二小時的架構課,處理的是「第一百次仍然成功」。從能力設計出發,逐層拆解知識、脈絡、記憶、規則、工具、工作流、評估與多代理八種架構,每一種都給治理方式與真實案例。12 章 114 課圖文講義、52 張對照表,附兩天的學員講義與投影片 PDF。課程於 2026 年 8 月 30 日實體開課,完整錄影將於課後上傳。
NT$ 12,999

