Claude Code 是什麼
Claude Code 是 Anthropic 推出的 AI 程式開發 CLI(命令列介面)工具。和 ChatGPT 的網頁版不同,它直接跑在你的終端機裡,可以:
- 讀取你電腦上的檔案——包括程式碼、設定檔、文件
- 修改現有檔案——直接編輯你的程式碼
- 建立新檔案——產生完整的程式碼檔案
- 執行終端機指令——跑測試、安裝套件、Git 操作
這讓它成為目前最強大的 AI 程式開發工具之一——但也意味著它有比網頁版 AI 更大的安全影響範圍。
安裝與初始設定
Claude Code 透過 npm 安裝,需要 Node.js 18 以上版本:
npm install -g @anthropic-ai/claude-code
安裝完成後,在你的專案目錄中執行 claude 即可啟動。首次使用需要登入 Anthropic 帳號或設定 API Key。
初始設定建議
| 設定項目 | 建議值 | 原因 |
|---|---|---|
| 權限模式 | Ask(預設) | 每次操作都需要你確認,最安全 |
| 工作目錄 | 專案根目錄 | 不要在 home 目錄啟動,限制存取範圍 |
| .gitignore | 確認包含 .env | 防止敏感檔案被 AI 讀取後意外提交 |
權限模型:Ask vs Auto-accept
Claude Code 有兩種主要的權限模式,這是你最需要理解的安全機制:
Ask 模式(推薦)
每當 Claude Code 要執行有影響力的操作時,都會先問你。你會看到它想做什麼,然後決定允許或拒絕。這包括:
- 寫入或修改檔案
- 執行 Shell 指令
- 安裝套件
- Git 操作(commit、push)
Auto-accept 模式(謹慎使用)
在這個模式下,Claude Code 會自動執行大部分操作,不需要你逐一確認。這在以下情境可以考慮:
- 你在一個隔離的測試環境中(例如 Docker 容器)
- 你已經設定好
.claude/settings.json的允許清單 - 你正在做不涉及敏感資料的個人專案
- 處理含有客戶資料的專案
- 專案目錄中有 .env、credentials 等敏感檔案
- 在生產環境的伺服器上
- 你不熟悉 Claude Code 的行為模式
檔案存取範圍與風險
Claude Code 可以存取你啟動它的目錄及其所有子目錄。這意味著:
- 如果你在
~/projects/my-app啟動,它只能看到這個專案 - 如果你在
~(home 目錄)啟動,它可以看到你所有的檔案 - 它可以讀取
.git目錄,意味著你的完整 Git 歷史都可見
風險矩陣
| 風險場景 | 影響 | 防範措施 |
|---|---|---|
| AI 讀取 .env 中的 API Key | Key 可能出現在 AI 的回應或日誌中 | 使用 .claudeignore 排除敏感檔案 |
| AI 修改了錯誤的檔案 | 程式碼被意外覆蓋 | 使用 Git 分支,隨時可以還原 |
| AI 執行了危險的指令 | 資料被刪除或系統被修改 | 使用 Ask 模式,檢查每個指令 |
| AI 把敏感資訊寫入新檔案 | 敏感資料被提交到 Git | commit 前檢查 diff,設定 pre-commit hook |
.env 與敏感資訊處理
這是 Claude Code 使用者最常遇到的安全問題。你的專案很可能有包含以下敏感資訊的檔案:
.env、.env.local、.env.productioncredentials.json、service-account.json- SSH 金鑰、SSL 憑證
- 資料庫連線字串
保護敏感資訊的四步驟
- 建立
.claudeignore檔案——語法和 .gitignore 相同,列出不希望 Claude Code 存取的檔案 - 確認
.gitignore包含敏感檔案——即使 AI 意外讀取了敏感資訊,也不會被 commit - 使用環境變數而非硬編碼——不要在程式碼中直接寫入 API Key
- Commit 前檢查 diff——每次 commit 前用
git diff確認沒有敏感資訊被加入
搭配 Git 的安全工作流
讓 Claude Code 修改你的程式碼時,Git 是你最重要的安全網。推薦的工作流程:
- 建立新分支:
git checkout -b feat/ai-changes - 讓 Claude Code 在分支上工作
- 逐步檢查修改:
git diff查看所有變更 - 確認沒有敏感資訊:檢查是否有 API Key、密碼等被寫入
- 跑測試:確保修改不會破壞現有功能
- 合併到主分支:確認無誤後才合併
企業環境注意事項
如果你的團隊打算在企業環境中使用 Claude Code,額外需要考慮:
- 資料分類:先確認專案中的資料分類等級,機密等級以上不應使用
- 網路政策:Claude Code 需要連網才能運作,確認公司防火牆允許
- 程式碼智財:你的程式碼會被送到 Anthropic 的 API,確認這符合公司的 IP 政策
- 稽核追蹤:考慮記錄 Claude Code 的使用行為,方便事後追蹤
- 統一設定:透過
.claude/settings.json統一團隊的權限設定
安全使用最佳實踐
| 原則 | 做法 |
|---|---|
| 最小權限 | 從 Ask 模式開始,只在需要時放寬 |
| 隔離環境 | 在獨立的專案目錄中使用,不要在 home 目錄啟動 |
| 版本控制 | 永遠在 Git 分支中工作,方便還原 |
| Diff 檢查 | 每次 commit 前完整檢查變更內容 |
| 敏感檔案排除 | 設定 .claudeignore 排除 .env 等敏感檔案 |
| 定期更新 | 保持 Claude Code 在最新版本,獲得安全修正 |
常見問題
Claude Code 和 ChatGPT 有什麼不同?
Claude Code 直接跑在你的終端機裡,可以讀寫檔案和執行指令;ChatGPT 是網頁版對話介面。Claude Code 的權限範圍更大,能力更強,但也需要更多安全注意。
Claude Code 會把我的程式碼送到雲端嗎?
是的,Claude Code 會將你的程式碼和對話內容送到 Anthropic 的 API 處理。如果你的公司對程式碼外流有嚴格規定,需要先確認這符合公司政策。
可以在生產環境的伺服器上使用嗎?
強烈不建議。Claude Code 有執行指令的能力,在生產環境中使用可能造成嚴重問題。建議在本地開發環境或隔離的測試環境中使用。
如何防止 Claude Code 讀取敏感檔案?
建立 .claudeignore 檔案,語法和 .gitignore 相同。將 .env、credentials 等敏感檔案加入排除清單。