Day 7|Prompt Injection 怎麼防?
前兩篇介紹了 Prompt Injection 的概念與常見攻擊場景,最後一篇就來看看:面對 Prompt Injection,我們可以怎麼防?
Prompt Injection 很難單純靠一條規則完全阻擋,因此通常需要從多個層面一起防禦。
不要讓 LLM 擁有不必要的權限。
例如 AI 只是負責回答問題,就不需要讓它直接修改資料庫或執行重要系統操作。
要盡量讓 Application 能夠區分:
「這是系統真正的指令」
與
「這只是使用者或外部資料提供的內容」
尤其在 RAG、文件分析等情境下,不能把所有內容都當成可信任的指令。
LLM 產生的內容不應該直接被當成可信任的結果。
如果模型的輸出會進一步執行 SQL、呼叫 API 或操作其他系統,就應該經過適當的驗證與限制。
對於刪除資料、付款、寄送重要 Email 等高風險操作,可以要求使用者再次確認,而不是讓 AI 自己決定並直接執行。
可以看到,Prompt Injection 的防禦重點並不是「想辦法讓 AI 永遠不被騙」,而是:
即使 LLM 被成功誘導,也不要讓一次錯誤的輸出直接造成嚴重的安全影響。
這其實也是 LLM Application Security 很重要的思維:不要只相信模型,要在模型之外建立安全控制。