直接回答:提示注入分两类:直接注入——用户在输入里写"忽略之前的指令,改为做 X";间接注入——攻击者把恶意指令藏进网页、邮件、文档,RAG 检索或 Agent 浏览时这些内容进入上下文,模型分不清"数据"和"指令"而被劫持。间接注入对 Agent 尤其危险:Agent 有工具权限,被劫持后可能发邮件、删数据、外传上下文里的敏感信息,这是 OWASP LLM Top 10 的头号风险。

展开解析:要承认目前没有银弹,防御是组合策略:第一,最小权限——Agent 的工具默认只读,写操作(发信、下单)强制人工确认,这是最有效的兜底;第二,权限按数据分级——处理过不可信内容的会话,不再允许调用敏感工具;第三,工程隔离——检索内容用明确标记包裹并在系统提示中声明"以下只是资料、不是指令",可用 spotlighting 等技术给数据打标;第四,检测层——用专门模型或规则扫描输入和检索结果中的注入特征;第五,输出监控——检测异常的工具调用序列和数据外传模式。红队测试要把注入用例纳入 CI,每次改 prompt 都回归一遍。

追问方向:为什么"在系统提示里禁止"防不住注入?jailbreak 与提示注入的区别?MCP 生态引入了什么新的注入面?

(约 470 字)