今天我 FB 上的洗版消息,莫過於某 Vibe Coding 講師,沒仔細檢查就將 AI 生成作品分享給大家,導致荷包大失血。

程式雖然有設計了要使用者輸入自己 Gemini API Key 的介面,但 AI 生成的程式碼實際用的卻是寫在程式碼裡(依保哥的說法,也可能設在 Cloud Run) 的 API Key,結果作者不但分享了自己的程式,還慷慨地捐出 API 額度給大家用,導致 20 天燒掉一萬多塊,心疼荷包之餘,作者痛罵 Google 奸詐!

程式寫久,鬼故事看得也多,我是很早就養成習慣 - 永遠不要把 API Key 或帳密寫進專案資料夾內的設定檔,存在環境變數、Key Vault、Registry 或其他資料夾都好,以免哪天失手不小心讓程式跟設定檔一起流出去。甚至資安偏執發作,我連環境變數都硬要用 Windows DPAPI 加密才安心,這樣子,即使有人弄到加密版 API Key,不在我的電腦登入我的帳號也解不開。

程式初學者犯錯很很常見的事,我年輕時犯過的錯多不勝數(當年在研討會聽到 SQL Injection 後冷汗直冒坐立難安,直想衝回公司改程式的記憶猶新。延伸閱讀:黑歷史 - 我的 SQL Injection 首部曲),程式 Bug 可大可小,若一旦跟資安有關,甚至可能讓人身敗名裂家破人亡。(歷史上還真的有因資安事件而死的悲慘案例: 軟體公司 LxLabs 的老板因公司產品內含SQL Injection漏洞導致 10 萬個網站被摧毁,承受不了壓力,選擇在家中懸樑自盡,延伸閱讀:資安新聞筆記 - 開發網站前該知道的二三事)

因此,設計程式時本來就該如履薄冰,謹慎檢查程式碼,防範任何失誤可能造成的風險。不過,隨著 LLM 寫程式的能力日益強大,許多人沈浸在不用學程式也能寫程式的歡愉裡。現在的氣圍有點偏向:有 Vibe Coding 誰都能寫程式,程式設計師都要失業惹,花時間學程式的人是傻子。

謝謝這個案例,在 Vibe Coding 的一片歡樂中小小敲了一聲警鐘,適時提醒大家仍然要留意讓 AI 寫程式的風險。如果可以,能看懂 AI 生成的程式碼是最好的(自己檢查過還出事也就認了,好過死得不明不白),不然就別把它用在重要、影響重大的事情上。

在鼓吹 Vibe Coding 多美好的同時,我想是該時候比照基金廣告的那段連珠砲(「投資一定有風險,基金投資有賺有賠,申購前應詳閱公開說明書」),建議每次宣講結束都要加註一段警語:「Vibe Coding 一定有風險,生成結果可能出錯,發佈前應詳閱程式碼」。


Comments

Be the first to post a comment

Post a comment