營運與維護 · 實作指南
AI 整理完資料,CSV 匯出仍需一道邊界
沿著一份虛構客戶跟進表,分清文字、數值和獲准使用的公式。
AAHouse 原創解說影片,採用 AI 輔助概念畫面、合成旁白及原創音樂。
簡體中文普通話逐字稿 · 英文逐字稿 · 台灣華語逐字稿 · 香港粵語逐字稿 · 澳門粵語逐字稿
下載按鈕之後
假設一家美國維修公司用 AI 整理諮詢內容,員工再下載表格跟進。網頁中的客戶備註只是文字,進入試算表後卻可能被解釋為公式。風險不只在模型回答裡,也在匯出邊界。熟悉的公司標誌和下載頁面,並不能證明其中每個儲存格都可信。以下是虛構流程的設計評審,不是客戶事故報導,也沒有實測成效。

同一串字元,兩種含義
用無害的“=1+1”說明區別:作為備註,應顯示原文;若被當作公式,可能顯示結果二。OWASP 將不可信輸入進入 CSV 後被表格解釋為公式的風險稱為 CSV 注入,MITRE 也收錄了對應弱點。[1][2] 本文不提供外聯或執行命令的測試內容。

先決定每個欄位是什麼
給匯出欄位一份小契約:客戶備註和工單編號是文字;工時是經過校驗的數值;公式只來自明確批准的模板。不要讓 AI 猜哪一行可以執行公式。微軟說明,直接開啟 CSV 會按當前預設格式解釋各欄位;匯入路徑和欄位型別因此值得核對。[3]

不要把加引號當成保證
CSV 的欄位分隔與公式解釋是兩個問題。OWASP 提醒,儲存再開啟可能改變引號或轉義處理,而且沒有適合所有表格軟體及下游系統的通用清洗方法。[1] 因此,開發評審應明確目標應用和版本,不能只憑首次開啟沒有異常就宣布完成。複核人員還需要知道哪些操作尚未測試,才能判斷例外是否可以接受。

兩種用途,分別交付
給員工閱讀的活頁簿,可考慮由匯出器明確寫入文字型別;給系統交換的 CSV,則保留約定的資料語義並說明解析規則。這是設計建議,不是說某種副檔名天然安全。需要改變顯示內容時,另存顯示值,避免悄悄改壞原始客戶備註或編號。交付說明應讓同事知道檔案是用於閱讀還是系統交換,避免兩條路徑混用。

把儲存再開啟放進測試
用虛構備註、帶前導零的編號、負數、逗號、引號和換行組合成測試集。核對開啟、儲存、關閉、再開啟,以及再次匯入的結果。記錄目標應用、版本、設定和預期文字或數值。驗收既要檢查沒有意外公式,也要檢查內容與欄位邊界沒有損壞。

讓匯出器承擔規則
模型可以幫助整理描述,卻不該成為匯出安全判斷的唯一防線。建議把欄位約定、固定序列化邏輯與迴歸樣例放在匯出層維護。模板改變或更換表格工具後重跑測試。遇到不支援的目標應用,先提供可審閱的替代展示,不要求員工忽略安全警告。

一次小範圍驗收
從一個常用匯出開始,由業務負責人確認每個欄位含義,開發者提交測試記錄,實際使用者檢查閱讀與後續匯入。通過驗收的範圍應寫明支援哪些工具與操作路徑,而不是籠統標註“已安全”。更少的人工重做是值得測量的目標,但上線前不能把它寫成已經取得的收益。
