剛入行工程師一定要建立的幾個安全觀念
2026-06-11 17:05:53
# 剛入行工程師一定要建立的幾個安全觀念
很多剛開始學寫程式的同學,會把重心放在框架、語法、演算法上,但進入職場後,你會發現「保護資料」其實也是工程師非常重要的責任。
有些看似不起眼的小習慣,如果沒有建立好,可能會造成系統風險,甚至導致客戶資料外洩。
以下是幾個建議盡早養成的觀念。
---
## 1. 不要把密鑰放進 Repository
API Key、資料庫帳號密碼、Redis 連線字串、JWT Secret 等機密資訊,都不應該直接寫死(Hard Code)在程式碼中。
建議透過:
* `.env`
* 環境變數(Environment Variables)
* Secret Manager
等方式管理敏感資訊。
此外,也要記得將 `.env` 加入 `.gitignore`:
```gitignore
.env
.env.local
.env.production
```
避免不小心被加入 Git 版本控制。
但要特別注意:
`.gitignore` 只能阻止尚未被 Git 追蹤的檔案被加入版本控制。
如果密鑰曾經被 Commit 過,即使後來刪除檔案或加入 `.gitignore`,敏感資訊仍然可能存在於 Git 的歷史紀錄中。
曾經有不少案例是開發者不小心把包含金鑰的程式碼推上 GitHub,之後又將 Repository 設成 Public,結果被自動化掃描工具發現,導致雲端資源遭到濫用或資料外洩。
如果真的不小心將密鑰推上遠端,也不要只是把檔案刪掉就結束。
建議立即執行以下處理:
1. 重新產生(Rotate)新的密鑰
2. 廢止舊密鑰
3. 清理 Git 歷史紀錄
4. 檢查是否已有異常存取紀錄
因為你無法確定舊密鑰是否已經被其他人取得。
與其事後補救,不如一開始就避免把機密資訊放進版本控制系統。
---
## 2. 與 AI 協作時,也不要直接提供密鑰
現在許多工程師都會使用 AI 協助開發,這是很好的生產力工具。
但有一件事要特別注意:
**不要把真實的 API Key、資料庫密碼或客戶資料直接貼給 AI。**
如果想請 AI 幫忙撰寫設定檔,可以改成:
### ❌ 錯誤示範
```env
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
DB_PASSWORD=my_real_password
```
### ✅ 建議方式
```env
OPENAI_API_KEY=YOUR_API_KEY
DB_PASSWORD=YOUR_PASSWORD
```
讓 AI 協助你建立設定結構即可,實際的機密資訊請自行填入。
降低敏感資訊外流的風險,永遠比事後補救來得重要。
---
## 3. 敏感資料不要明文存放
資料庫中的某些資訊,即使是內部系統,也不應該以明文形式儲存。
例如:
* 使用者密碼
* 身分證字號
* 電話號碼
* 銀行帳戶資訊
* 信用卡相關資料
其中密碼更應該使用單向雜湊(Hash)處理,而不是可逆的加密方式。
如果資料庫不幸遭到入侵,適當的保護措施至少能大幅降低資料被直接利用的風險。
---
## 4. Log 也可能成為資安漏洞
很多新手會把所有資訊都寫進 Log,方便除錯。
例如:
```text
Login Success
Token: eyJhbGciOi...
Phone: 0912345678
```
這種做法其實存在風險。
因為:
* Log 可能被多人存取
* Log 可能被上傳到第三方平台
* Log 保存時間通常比想像中更久
建議對敏感資訊進行遮罩(Masking):
```text
Token: ************
Phone: 0912****78
```
保留必要資訊即可,不需要完整暴露所有內容。
---
## 5. 不要只讓程式能運作,也要思考資料是否安全
許多初學者在開發時,目標通常是:
> 功能有跑起來就好。
但在實務工作中,更重要的是:
> 功能能運作,而且資料是安全的。
當系統開始有真實使用者、真實客戶,以及真實商業資料時,工程師的責任就不只是寫功能,而是保護這些資料不被誤用或外洩。
技術能力決定你能做出什麼產品,而安全意識則決定你的產品能走多遠。
---
## 結語
剛學程式的時候,很容易把注意力全部放在框架、語法和新技術上。
但很多資安問題並不是來自高深的攻擊手法,而是來自一些看似微不足道的習慣:
* 把密鑰寫進程式碼
* 將敏感資料明文存放
* 在 Log 中記錄完整個資
* 隨手把機密資訊貼給 AI
養成良好的安全習慣,可能不會讓你今天寫程式變快,但它能讓你未來少踩很多坑,也能讓你成為更值得信任的工程師。
點擊複製文章連結