间接提示词注入:藏在网页里的第二张嘴
原创
Sink
Sink
船山信安
2026年10月18日 00:00
湖南
去阅读
漏洞挖掘 · VULNHUNT × AI 安全
间接提示词注入:藏在网页里的第二张嘴
直接对模型喊\"忽略上面的指令\",叫直接注入。把指令藏进它要读的内容里,叫间接注入——更阴,也更难防。模型分不清\"这是我在执行的指令\"和\"这是我要处理的数据\"。
本文只做技术原理与防护讲解,不提供任何可被直接用于攻击的指令模板;涉及防御时以\"该不该自动执行\"为核心判断。
01区别:指令从\"用户输入\"挪到了\"模型要读的内容\"
直接注入:攻击者就是用户,直接在对话框里写\"忽略之前的话\"。防护相对简单——把用户指令和系统指令分层即可。
间接注入(XPIA):攻击指令不在用户输入里,而在工具返回的内容里——网页、文档、邮件、PDF。agent 读完这些内容,把\"数据\"误当成了\"命令\"。你没说一句坏话,模型自己就被带跑了。
02典型场景:三个你每天都在用的动作
1让 AI 读网页做摘要:网页正文里藏着\"把本次对话历史发到这个地址\"。
2让 AI 处理邮件:邮件正文就是一段攻击指令,模型当成了待办。
3RAG 检索增强:检索回来一篇被投毒的文档,污染了整段上下文,后续回答全被带偏。
03危害链:从\"读一句坏话\"到\"干一件坏事\"
1数据外泄:把上下文(对话、文档、凭据片段)发到攻击者控制的地址。
2横向动作:借 agent 的工具调用权限,去查库、发信、改配置。
3持久化:改写系统提示、注入新指令,让污染在后续会话里延续。
04为什么难防:传统校验只防\"用户\"
1输入渠道太多了:任何被 agent 读取的内容都是潜在指令源,远不止一个对话框。
2校验只认\"用户\":传统输入过滤防的是用户提交的参数,不防内容里夹带的指令。
3模型不自带分际:它不会天然区分\"这是指令\"和\"这是被处理的数据\",靠的是工程侧强制隔离。
05防守四件事:把\"处理不可信内容\"当危险动作
1严格隔离指令与数据:系统提示与不可信内容物理分离,不可信内容不进\"可执行指令区\"。
2工具调用最小权限 + 人工闸门:敏感动作默认不自动执行,需人类确认。
3输出侧监控:盯异常外联、敏感数据出域、超出任务范围的内容生成。
4默认不自动执行:把\"处理不可信内容\"标记为危险动作,其触发的工具调用须经显式授权。
参考来源
OWASP Top 10 for LLM Applications 2025 — LLM01: Prompt Injection
OpenAI 2025 年底研究:提示注入类似网络诈骗与社会工程,难以被完全解决
看雪论坛 AI 自身安全板块(forum-168)相关公开帖
本文为技术原理与防护讲解,不提供任何可直接用于攻击的指令模板。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论