所有入門單元免費開放 · 課程內容持續更新中

安全、隱私與授權

用 AI 寫程式時,最容易出事的不是程式寫錯,而是把不該貼的東西貼出去、裝了不該裝的套件。這堂課幫你建立三條安全底線,並把整個單元串起來。

第 4.6 堂約 11 分鐘

前面五堂,你學會了 AI 怎麼寫程式、怎麼把需求說清楚、怎麼請它解釋和除錯、怎麼驗證它的產出。這是本單元的最後一堂,要補上一塊很重要的拼圖:安全。

好消息是,這裡的規則不難,大部分是習慣問題。養成了,就能安心地用 AI 做更多事。

底線一:秘密不出門

API 金鑰是一串讓程式能使用某個服務的密碼,例如呼叫匯率 API、寄信服務、雲端資料庫都會用到。它和你的帳號密碼一樣重要:別人拿到,就能用你的名義使用服務,甚至產生費用。

問題是,這些東西常常就寫在程式碼或設定檔裡。除錯時一個順手複製,就整段貼出去了。

紅綠燈示意圖:綠燈可以貼練習程式、公開範例、錯誤訊息、假資料;黃燈先確認公司規範再貼公司程式碼;紅燈不要貼密碼、API 金鑰、token、.env 內容、客戶個資

不確定的時候,就當作紅燈。

貼程式碼給 AI 之前,先把敏感的值換成假的:

# 貼給 AI 之前
API_KEY = "sk-live-8f3a...真正的金鑰..."

# 換成這樣再貼
API_KEY = "YOUR_API_KEY"

更好的習慣是,一開始就不要把秘密寫在程式碼裡,而是放在環境變數或 .env 檔,並且確認 .env 不會被上傳到 GitHub。你可以直接請 AI 教你:

請 AI 幫你把秘密搬出程式碼

我的 Python 匯率腳本裡直接寫了 API 金鑰(我已經換成假值 YOUR_API_KEY)。請教我:

  1. 怎麼改成從環境變數讀取金鑰?
  2. 如果用 .env 檔,要怎麼確保它不會被 Git 上傳?
  3. 如果我之前不小心把真的金鑰上傳過,應該怎麼處理?

客戶資料也是同樣道理。要請 AI 幫忙處理一份客戶名單的格式,就先做幾筆假資料,例如「王小明、0912-000-000」,讓 AI 寫出程式,再由你在自己的電腦上執行真正的資料。

底線二:先看公司規則

如果你在工作上使用 AI,請先了解公司的規範。不同公司差很多,常見的問題包括:

  • 可以使用哪些 AI 工具?是否只能用公司採購的版本?
  • 公司程式碼可以貼進去嗎?
  • 對話內容會不會被用來訓練模型?公司方案的設定是什麼?

各家 AI 服務對資料的處理方式不同,個人方案和企業方案也可能不同,而且條款會更新。不要憑印象,去看服務的隱私說明和公司的規定。不確定時,問主管或資訊部門,比事後補救好得多。

底線三:套件先查再裝

上一堂提過,AI 可能建議根本不存在的套件。還有一種風險是名字很像的冒牌套件,例如把知名套件的名字少一個字母。這類攻擊屬於「供應鏈風險」:問題不在你的程式,而在你安裝的別人的程式。

安裝前花一分鐘檢查:

檢查項目 怎麼看
真的存在嗎? 去官方套件庫(例如 PyPI、npm)搜尋
名字拼對了嗎? 和官方文件上的名稱逐字比對
有人在維護嗎? 看最近更新時間、原始碼網址、使用人數
真的需要嗎? 標準函式庫能做到的,就不必多裝一個套件
請 AI 一起把關

你建議我安裝 套件名稱。請告訴我:

  1. 它的官方文件或原始碼網址是什麼?(我會自己點進去確認)
  2. 有沒有只用 Python 標準函式庫就能做到的替代方法?

關於授權:誰的程式碼?

AI 產生的程式碼,大多是依照常見模式組合出來的。但偶爾,它可能產生和某個既有開源專案很相似的片段,而那個專案可能有授權條件,例如要求保留版權聲明。

給初學者的實用建議:

  • 練習、個人專案:通常不必太擔心。
  • 公司或商業產品:遵守公司的政策。有些工具提供比對公開程式碼的功能,可以留意。
  • 整段看起來像某個知名專案的程式:去找原始出處,確認它的授權。

這個領域的法律規範還在發展中,各國不一樣。這裡不是法律建議,有疑慮時請教公司法務或專業人士。

下一個單元,我們要從聊天視窗走出來,學習使用 Claude Code 這類能直接在你的專案裡動手的 Coding Agent。它的能力更強,所以今天這三條底線會變得更重要。

行動練習:串起整個單元

用一個「匯率換算腳本」把這個單元學到的全部走一遍:

  1. 需求:用第二堂的範本寫需求說明,指定「只用標準函式庫、匯率先寫死」,請 Claude 先提問再寫。
  2. 理解:請它在每行加中文註解,挑一行你最不懂的追問。
  3. 驗證:用三個你算得出答案的例子測試,再試 0、負數、abc。
  4. 除錯:遇到錯誤時,照第四堂的格式整理線索再問。
  5. 安全:假裝要改成呼叫真實匯率 API,請 AI 教你從環境變數讀取金鑰,程式碼裡只留 YOUR_API_KEY。

讀完了嗎?

標記完成後,單元與專案的進度會自動更新(只存在這台裝置的瀏覽器)。

卡住了?讓 AI 當你的家教複製這段提問範本,貼到 Claude 或其他 AI 工具,再補上你卡住的地方。

留言與討論

卡關了、有心得,或發現內容需要更新?都歡迎留言。留言使用 GitHub 帳號登入。

留言區即將開放。現在可以先到 GitHub 討論區 發問,或看看 交流頁 的其他管道。