假設你請 AI 幫忙寫幾段要貼進公司系統的東西:活動頁的公告、試算表裡要往下拉的一欄公式、一句清掉去年過期訂單的資料庫指令。它寫得很快,看起來也對,你複製、貼上、按下執行。
貼之前,多數人會想「這段寫得對不對」,比較少想「這段貼進去之後會不會自己做事」。AI 給你的是一段文字,可是文字一旦進到瀏覽器、試算表、資料庫,就會被那邊的軟體解讀:網頁會執行裡面的程式碼,試算表會照公式計算,資料庫會照指令刪資料。
站上已經有兩篇談相鄰的問題。Prompt Injection 防護談的是外部內容進到 AI 時,裡面夾帶的指令;把折扣上限寫進 AI 指令,客人套得出來嗎?談的是你寫給 AI 的指令本身。這篇看另一頭:從 AI 出來、往下游系統走的那一段。本文談資安做法,不構成法律意見。
輸出也要當成外來的資料
OWASP 整理的大型語言模型應用十大風險(2025 年版),把「AI 的輸出沒經過處理就交給別的系統」列成第 5 項,常見情況包括程式執行、網頁顯示、資料庫查詢這幾類。照這個觀念,我把辦公室裡會碰到的情況分成三種去處。
第一種只給人讀:摘要、草稿、會議紀錄。它不會自己做事,錯了頂多是內容錯,核對就好。
第二種會被軟體顯示或計算:網頁公告、電子報、自動回信範本、試算表公式。你貼進去的是文字,但瀏覽器、收信軟體、試算表會去解讀它。網頁裡的程式碼會執行,圖片網址會被自動抓取,公式會自動計算。試算表 OWASP 沒有特別點名,這是我的判斷:有些函數會連到外部網址抓資料,或產生一個可以點的連結,性質跟網頁內容差不多。
第三種會被系統直接執行:資料庫指令、命令列指令、巨集、自動化腳本。這一種最危險,因為執行完常常改不回來。
這跟 AI 寫得好不好沒有直接關係。兩種情況都會出事。
一種是有人在 AI 讀的資料裡動了手腳。假設你請 AI 把客戶留言整理成一則網頁公告,其中一則留言裡藏了一小段程式碼,AI 照樣搬進公告;你貼上網頁,訪客一打開就執行了。所以輸出裡只要混了別人寫的東西,就要用看待陌生人來信的眼光看它。
另一種是沒有任何人搞鬼,只是指令本身就錯了。OWASP 的情境之一,是有人在聊天介面請 AI 寫一個把資料表全部刪掉的查詢,沒人看過就執行了。開頭那句「清掉去年過期訂單」也一樣,條件少寫一個字,刪掉的範圍就不一樣。
AI 給了一段東西
│
▼
裡面混了它讀進來的外部資料嗎?
├─ 是 → 下面得到的等級,再往上升一級
▼
這段要去哪裡?
├─ 只給人讀 ────────→ 綠:核對內容
├─ 網頁、信件、試算表 → 黃橘:先在副本看效果
└─ 交給系統執行 ────→ 紅:測試環境先跑、人看過
AI 產出要不要先檢查再用
| 等級 | 這段要去哪裡 | 例子 | 會不會自己做事 | 用之前要做什麼 |
|---|---|---|---|---|
| 綠 | 只給你自己看 | 摘要、草稿、想法清單 | 不會 | 核對內容與事實 |
| 綠 | 貼進文件或簡報 | 會議紀錄、報告段落 | 不會,但會被別人當真 | 核對事實與數字,標出處 |
| 黃 | 寄出去或貼上網頁 | 公告、電子報、自動回信範本 | 會,瀏覽器和收信軟體會解讀裡面的程式碼、圖片網址和連結 | 用純文字貼上;先貼在沒人看得到的測試頁看效果;連結逐一確認網域 |
| 橘 | 貼進試算表或後台欄位 | 公式、要匯入的檔案、商品描述 | 可能,公式會計算,有些函數會連外 | 先貼在副本;請 AI 逐一說明每個函數做什麼;看不懂的函數不用 |
| 紅 | 交給系統執行 | 資料庫指令、命令列指令、巨集、自動化腳本 | 會,而且常常改不回來 | 先在測試資料上跑;刪除、更新、寄送類由人看過結果才上正式環境;能用唯讀帳號就用唯讀 |
作者整理,非官方。內容裡混了客戶留言、網頁、別人傳來的檔案這類外部資料的,整段往上升一級;已經是紅的,就多找一個人看。
黃和橘兩格最容易被當成綠。公告和公式看起來都是「內容」,貼的人不會覺得自己在執行什麼。判斷的依據是貼進去之後會不會被軟體解讀,跟內容長得像文字還是像程式無關。
紅色那一格,資料庫指令可以拆成兩步:先請 AI 寫一個只查詢、不修改的版本,看它會選到哪幾筆、幾筆;確認範圍對了,再換成刪除或更新。刪除、更新、寄送這三類,先在測試資料上跑過,由人看過結果才碰正式資料。
OWASP 另外提醒一件相關的事:AI 寫程式時,可能建議一個根本不存在的套件名稱,照著去裝,就可能下載到帶惡意程式的東西。套件來源怎麼查,在裝了一個 AI 套件,怎麼知道是誰發布的?那篇有檢查表。
動手做
要貼進系統之前,開一個新的對話,把那段產出交給 AI 檢查,只檢查不改寫:
下面這段內容是 AI 產生的,我準備貼進:(網頁後台/電子報/試算表/資料庫/命令列,請自己改)。 請只檢查,不要改寫、不要執行。用白話列出: 1. 會被軟體解讀或執行的部分:程式碼、事件屬性、外部連結、圖片網址、試算表函數、資料庫的刪除與更新指令、命令列的刪除或上傳動作。每一項寫出原文片段和它會做什麼。 2. 會連到外部的網址,每個網址屬於哪個網域。 3. 如果是資料庫或命令列指令:它會影響哪些資料、多少範圍,有沒有改不回來的動作。 4. 這段內容裡有沒有看起來像是從別人的留言、網頁或檔案搬進來的文字。 最後依「綠/黃/橘/紅」給一個等級,說明理由。 內容:(貼上)
資料庫指令那一類,可以先跟管理系統的同事要一個只能查詢的帳號,讓 AI 寫的指令都先在這個帳號下跑一次。
站內延伸
- 讓 AI 查資料庫但不能改 → 找方法AI 資料查詢(唯讀)
- AI 寫的程式安不安全 → 會跑不等於安全
- 外部內容進到 AI 時怎麼防 → 找方法Prompt Injection 防護
來源: OWASP Top 10 for LLM Applications:LLM05:2025 Improper Output Handling(2026-10-25 查閱;輸出未經處理就交給下游系統列為第 5 項風險、常見情況類別、刪除所有資料表的情境、AI 可能建議不存在的套件;本文只參考觀念,三種去處的分類、例子與分級表為作者自行撰寫,原文以 CC BY-SA 授權)。試算表公式屬同一類、各軟體如何解讀內容為作者判斷與一般技術常識;分級表為作者整理。本文非法律意見。