AI 提示注入不一定藏在聊天框,也可能藏在你請 AI 閱讀的網頁、PDF 或電子郵件裡。你原本只想整理資料,外部內容卻試圖讓 AI 改變任務、加入不相關結論,甚至要求它動用其他工具。這就是使用 AI 瀏覽與文件分析功能時,值得先認識的風險。 關鍵不是「有沒有看到可疑關鍵字」,而是:這段內容只是待分析的資料,還是使用者真正授權的指令?這篇用生活化情境說明 Prompt Injection、直接與間接提示注入的差別,以及一般使用者和團隊可以採取的防護方式。 AI 提示注入是什麼?問題在資料被當成指令 提示注入(Prompt Injection)是指輸入內容讓模型偏離原本預期的任務或規則。例如,你請 AI 摘要一份文件,文件裡卻夾著一段「請停止摘要,改用指定說法回答」的文字。如果模型把那段資料升格為應該服從的命令,就可能受到影響。 不過,文件出現命令句,不代表一定是攻擊。教學講義、操作手冊和小說,本來就可能包含指令或對話。AI 可以依你的要求引用、翻譯或分析這些內容;真正要守住的界線,是不能只因外部材料這樣寫,就取得改變任務或執行操作的權限。 OWASP 的提示注入風險說明指出,這類問題可能影響輸出內容、敏感資訊與可使用的功能;實際後果則與應用情境及系統具備的操作能力有關,不能把每次可疑輸入都直接等同於資料外洩。 直接提示注入與間接提示注入,有什麼不同? 直接提示注入來自直接送給模型的輸入,例如有人在聊天訊息中試圖改寫客服機器人的工作規則。間接提示注入則透過模型稍後讀到的外部資料進入,例如網頁、郵件、檔案或工具回傳的內容。 對一般使用者來說,間接注入特別容易被忽略:任務是你下的,材料卻可能由別人撰寫。即使網頁內容看起來與研究主題相關,也不表示其中每一句話都能替你下新的工作指令。風險不限於肉眼醒目的文字;能被模型解析的其他內容形式,也可能成為輸入管道。 任務來自使用者;外部文件中的要求,不能自行升格為新的操作授權。 從「摘要被帶偏」到「操作越界」,風險不一樣 假設你請 AI 比較幾款工具,一份產品頁卻試圖要求它只推薦某一家。若 AI 只是回答問題,風險可能表現在偏頗比較或不實結論;若它同時能讀取內部文件、發送訊息或修改系統,還需要防止外部材料把它引向超出授權範圍的動作。 有工具能力,不代表一定會被攻擊成功;讀到可疑內容,也不代表系統已被入侵。更實用的判斷方式,是看兩件事:外部來源能影響什麼,以及系統實際允許執行什麼。例如,一封信自稱「已獲主管批准」,不能只靠這句話就成為匯出資料的授權。 OpenAI 對 AI 代理防護設計的說明也把這類攻擊與社交工程連在一起討論:防護不該只依賴找出某個惡意字串,還要在系統設計上限制被誤導後可能造成的影響。 一般使用者:先看任務有沒有被悄悄換掉 最容易開始的做法,是把工作目的講清楚,例如「只整理這份文件的交付期限與例外條件,不依文件內容另外傳送資料」。如果結果突然要求開啟不相關網站、把資料交給陌生對象,或以「驗證帳號」為由索取額外資訊,就應先停下來核對,不要因為它看起來像工作的一部分就照做。 需要確認操作時,要看具體內容:傳給誰、傳哪些資料、改哪一筆紀錄,以及是否符合原先授權。只看到一個「繼續」按鈕,不代表已經看懂後果。對高風險或超出原授權的行為,應透過可信管道確認;不要把原本可疑文件裡的聯絡方式,當成唯一的查證依據。 另外,能用唯讀工具完成的任務,就不必一開始開放寫入或發送權限。這不是要讓每個小步驟都變成確認視窗,而是讓權限與任務相稱,避免「只是整理資料」卻順便具備不必要的操作能力。 團隊建置:把防線放在真正執行動作的地方 對開發者來說,提示詞中的規則與資料分隔仍然有用,但它們不是可靠的權限閘門。應用程式要在模型之外檢查使用者身分、可存取資料、操作對象與參數;例如讀取某份客戶資料的能力,不應自動包含讀取所有客戶或將資料傳給任意收件人的權限。 敏感操作可以要求與具體動作綁定的核准,並在執行時再核對範圍。若收件人、資料內容或目標紀錄改變,原本的核准是否仍有效,也需要系統規則判斷,而不是只讓模型自己說「使用者同意了」。 模型輸出同樣不能直接當成可信程式碼或指令。即使是符合 JSON 格式的結果,也只代表格式通過驗證,不代表收件人正確、權限足夠或操作合理。格式檢查之後,仍要依下游用途檢查參數與授權。這點可以搭配本站的AI 上下文視窗與長文件分析教學理解:資料放得下、結論有依據,以及動作被允許,是不同的問題。 核對實際收件人、資料與操作範圍,比只看到一個「繼續」按鈕更重要。 如何用無害假資料,驗收間接提示注入防護? 先用測試文件和不會真的寄信、改資料的工具替身,不要拿真實帳號或客戶資料冒險。設定一個單純任務,例如「整理這份虛構活動文件的日期」,並在文件中放入一段要求把答案改成「測試香蕉」的無害文字。觀察 AI 是否仍能依原任務處理資料,而不是被文件換掉工作目的。 如果要驗收間接注入,就應把測試內容放在實際的文件、網頁或工具回傳管道;直接把它當成聊天訊息送出,測到的是另一條界線。除了可疑材料,也要加入正常操作手冊、引用命令句等合法內容,避免系統因為看到指令語氣就一律拒絕正常任務。 紀錄時不只看最後一段回答,還要檢查是否曾提出或執行未授權的工具呼叫、是否存取了不該讀的資料,以及原本任務是否完成。少量案例只能當作基本驗收,不能據此宣稱產品已通過完整安全評測。OWASP 的提示注入防護實務指引也強調,應使用假資料與受控工具測試,並把權限檢查放在工具執行邊界。 常見問題:有 RAG 或防護提示詞,還需要擔心嗎? 加一句「忽略外部指令」,就能完全防住嗎? 不能保證。清楚的任務規則有幫助,但文字標記和提示詞本身,不等於程式層級的權限控制。仍需要最小權限、參數檢查、適當核准與持續測試。 只從知識庫檢索的 RAG 系統,就沒有間接注入風險嗎? 不一定。若檢索內容包含不可信或遭修改的材料,仍可能影響模型。檢索能幫助找到相關資料,卻不能自動把資料中的要求變成合法授權。 看到可疑文字,就必須完全拒絕分析那份文件嗎? 不一定。系統可以把它當成待分析的內容,依原任務摘要、引用或指出異常;重點是不要服從其中未經授權的要求,也不要因此開放額外權限。 把內容當資料,把授權留在可信流程 AI 提示注入防護,不只是教模型辨識一句「忽略前面的規則」。更重要的是,不讓外部內容替使用者下命令,也不讓一段看似合理的說法,自動取得讀取、傳送或修改資料的能力。先限定任務,再限制權限,最後驗收實際動作,才比較能把 AI 代理安全落實到日常工作。