🎯 什麼情境該想到我

當 LLM 功能要接觸到你無法控制的輸入——外部使用者、爬來的網頁、RAG 檢索到的文件——上線前需要盤點攻擊面的時候。

⚙️ 怎麼用(步驟 / 公式)

  1. 盤點提示注入的四種形態

    • 直接注入:使用者在輸入裡直接下指令覆蓋系統提示
    • 間接注入:惡意指令藏在被檢索或被讀入的文件裡(RAG 情境最危險,因為輸入不是使用者打的)
    • 分隔符攻擊:偽造分隔記號讓模型誤判哪裡是指令、哪裡是資料
    • 角色混淆:誘導模型切換身分或人格,繞過原本的約束
  2. 盤點外洩向量

    向量洩漏什麼
    系統提示外洩你的 prompt 設計與內部規則
    訓練資料萃取訓練語料裡的敏感內容
    上下文外洩同一對話中其他來源的資料
    設定曝光模型參數、工具清單、後端結構
  3. 區分越獄與注入:越獄針對的是安全護欄(誘導產生有害內容),提示注入針對的是指令優先權(讓模型聽攻擊者而不是你)。防法不同,不要混為一談。

  4. 別忘了訓練期攻擊:資料下毒與後門,是在模型還沒上線前就被埋進去的。

  5. 用縱深防禦,不要押單一措施:輸入驗證與淨化 → 系統提示加固 → 輸出過濾 → 上線前對抗性測試(red teaming)→ 上線後監控異常模式。

🧪 我實際套用的紀錄

  • 2026-08-01:從 LLM Course 收錄,尚未實際套用。

⚠️ 注意 / 什麼時候不適用

  • 沒有任何單一防護能擋下所有注入,把安全押在「我的系統提示寫得很嚴」上是最常見的誤判。
  • 純內部、輸入完全可控的場景,做到基本輸出檢查即可,不必上全套。
  • 過度過濾會犧牲可用性,防護強度要對應實際暴露面。

🔗 相關工具