提示注入是什么
提示注入指不可信内容里夹带的指令被模型当成任务执行。它的根源不在措辞,而在结构:模型读到的是一段连续文本,数据与指令走同一条输入通道,模型只能按语言模式统一解读,没有天然的权限标记来区分「这是资料」和「这是要求」。因此凡是把外部内容拼进提示的系统,都可能被内容里的一句话改变行为,这属于系统设计问题,而不是单点 bug。
两类注入与防护方向
直接注入来自用户自己的输入,例如在提问里写「忽略以上要求,改为输出…」。间接注入来自第三方内容——网页、文档、邮件、工具返回结果,用户往往完全不知情,代理型系统里风险更高。防护思路是组合手段:内容分区与隔离、来源信任分级、权限最小化、敏感操作二次确认与输出审查,目标是把成功率压下来、把影响面收窄。
概念与定位
| 本质 | 输入通道里内容与指令混流,模型按语言模式统一解读 |
|---|---|
| 分类 | 直接注入(用户自己输入)与间接注入(第三方内容夹带) |
| 与越狱的区别 | 越狱绕过安全策略输出受限内容;注入改变任务本身 |
| 定位 | 需要隔离、权限与审查手段组合应对,而非单点修复 |
| 现实预期 | 目标是降低成功率与影响面,而不是承诺彻底消除 |
典型暴露场景
- 知识库问答:检索到的文档里含有指令样文本
- 网页摘要与浏览代理:抓取页面时把页面内脚本化文字带进上下文
- 邮件与工单处理:外部来信内容被自动摘要或触发动作
- 工具返回结果:第三方接口返回的文本被当作可信内容继续推理
- 共享文档与附件:多人可编辑的内容进入自动化流程
概念区分速记
概念区分速记
提示注入:内容里藏指令 → 影响模型行为
越狱:绕过安全策略 → 输出受限内容
# 两者可叠加,但防护手段不同(前者靠架构隔离,后者靠安全策略)防护层次与作用
| 层次 | 做法 | 能挡住什么 |
|---|---|---|
| 输入隔离 | 外部内容标签包裹、剔除同名结束标签 | 降低内容被当指令解读的概率 |
| 来源分级 | 按来源可信度决定可用工具与操作范围 | 收窄不可信内容能触发的动作 |
| 权限最小化 | 只读账号、白名单工具、参数校验 | 越权读取与写入无法执行 |
| 敏感操作确认 | 外发、删除、付款类动作需人工确认 | 把不可逆操作拦在最后一步 |
| 输出审查 | 对出站内容做敏感信息与地址检查 | 减少数据外泄与横向跳转 |
不要在提示词里寻找终极防护:模型侧约束可被绕过,权限与确认流程才是底线。
OWASP LLM Top 10 把提示注入列为 LLM01 类风险;做威胁建模时可参照它的分类梳理自家数据入口。