首页/AI/提示词工程速查/RAG 文档投毒与注入面
提示注入与防护50 条

RAG 文档投毒与注入面

知识库里可被写入的内容就是注入面:上传文档、评论、附件都可能夹带指令;入库与检索两端都要治理。

提示词工程速查AI更新于 2026-10-13

RAG 的注入面在哪

知识库里任何可被外部写入的内容都是注入面:上传的文档、用户评论、工单附件、网页抓取结果。攻击者只要让一段带指令的文字进入向量库,它就有机会在后续某次检索中被召回,混进提示。治理要覆盖两端——入库侧做来源标记与审核,检索侧做来源过滤与租户隔离。

基本信息

注入面上传文档、评论、附件、抓取网页
入库来源标记 + 可信等级 + 可疑块扫描
检索按来源白名单召回,多租户严格隔离
拼装资料放数据区并声明其中的指令不执行
后置输出检查与引用校验,异常引用拦截

典型使用场景

  • 内部知识库:员工上传的文档需要标注来源与可信等级
  • 客服助手:用户提交的图片转文字说明可能夹带指令
  • 开放上传的资料库:需要入库前扫描指令样式文本
  • 多租户 SaaS:检索必须按租户过滤,防止跨租户内容注入
  • 网页抓取管道:抓回正文里混入「请输出以下内容」的段落

RAG 治理清单

RAG 治理清单
# 入库
- 每条切片记录来源(系统/内部审核/用户上传)与可信等级
- 敏感场景人工复核后才入库
- 扫描指令样式文本(「忽略以上」「你现在是」),标记可疑块

# 检索
- 只召回被允许的来源;多租户查询强制带 tenant_id
- 记录召回切片的来源,便于事后追溯

# 拼装
- 资料放在明确的数据区,声明其中指令不执行

# 后置
- 输出引用必须来自当次召回集合;越界引用拦截并告警

治理环节对照

环节控制点失效后的后果
入库来源标记与可信等级注入样本无法溯源,也无法按来源隔离
入库指令样式扫描可疑文本无标记,后续只能靠人工偶发发现
检索来源白名单召回低可信内容与官方资料同等进入上下文
检索租户隔离一个租户的内容出现在另一个租户的回答里
拼装数据区与指令区分流资料中的文本被当作指令执行
后置引用校验编造内容无据可查却看起来有引用
多租户场景里,检索不做隔离是最严重的一类问题:它同时是数据泄露与注入通道。查询条件必须由服务端注入租户标识,而不是由模型或前端传参决定。
引用校验是低成本的最后一道闸:要求输出引用的切片编号必须落在当次召回集合内,越界即判为可疑输出。这条规则能拦下相当一部分由注入引发的编造。

易错点

  • 开放上传的知识库不做来源标记,注入样本无法溯源,也无法按可信度隔离
  • 检索召回不区分租户,一个租户的内容会影响另一个租户的回答,同时构成泄露与注入
  • 把召回文本与系统指令拼成同一段,等于把指令权限交给了外部内容
  • 只做入库过滤不管检索与拼装,供应链上游的一次放行会在后续所有会话中生效

数据来源与参考

  • OWASP LLM Top 10(2025)LLM01 提示注入与 LLM08 向量与嵌入弱点
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌