提示词注入:AI 智能体如何守住数据与操作权限
提示词注入为什么会让 AI 智能体越权?本文结合邮箱与 CRM 场景,讲清直接注入、间接注入和越狱的区别,梳理最小权限、数据外发检查、人工审批、日志监控与测试方法。重点说明如何让审批绑定具体操作,并在模型受到恶意内容影响时限制业务后果,为连接客户数据和启用自主操作提供可落实的检查清单。
发布于

AI 智能体读到一封邮件,不代表它就获得了发送另一封邮件、导出客户数据或修改商机的权限。Open Worldwide Application Security Project(OWASP)在大语言模型应用十大风险(Top 10)中,将提示词注入列为 LLM01。对开发者而言,关键是约束应用能够执行的操作:即使模型听从了错误指令,也要把后果控制住。目前,没有任何防御措施能彻底解决提示词注入问题。
本文已于 2026 年 10 月 26 日对照 OWASP 和 Anthropic 当时的在线指南核验。下文的邮箱与 CRM 场景均为设计示例,并非实际部署效果报告。
什么是提示词注入?
提示词注入,是指输入内容让语言模型偏离原本应遵循的指令。 大语言模型(LLM)通过理解语言来生成回答、提出行动建议。问题出在:本应仅供模型阅读的内容,被它当成了需要执行的指令。
可以把它想成一名员工在阅读供应商来信。信里可以说明送货出了什么问题,却不能因此授予供应商访问客户数据库的权限。智能体同样需要分清信息与权限,并由应用层控制措施落实这条边界。
OWASP 在 LLM01:2025 提示词注入中,将用户直接输入和外部间接内容都列为攻击入口。真正需要划清的边界,是谁有权设定任务和权限,而不是可疑文本看起来是否专业。
答错问题不一定是遭到了注入。没有外部操纵,模型也可能编造事实;提示词注入则特指输入内容在引导模型改变行为。两者都可能造成损害,但专门查找恶意指令的过滤器,并不能捕获模型的所有普通错误。
提示词注入为什么会影响生成式 AI?
模型会同时读取指令和任务材料,有时会赋予任务材料本不该拥有的指令效力。角色和来源标签有助于模型区分二者,但不能替代访问控制。
智能体还会多走一步,而这一步可能产生实际后果:应用把模型提出的操作转成工具调用。工具是在对话之外执行操作的函数,比如查询记录或发送消息。如果应用使用权限宽泛的凭证,不加约束地执行模型的每个建议,一次语言理解错误就可能变成一次真实的业务操作。
所有使用工具的智能体都必须面对这条边界:理解了请求,并不等于请求已经获得授权。
提示词注入攻击示例:直接注入与间接注入
两者的区别在于恶意指令从哪里进入。 以下示例说明攻击者试图达到的效果,不展示具体攻击文本。
直接提示词注入
一名客户在客服助手中输入请求,假称自己获得了特殊内部授权,试图诱使助手泄露另一位客户的账户备注。攻击者直接使用了应用的输入通道。
防御措施必须包括在记录服务中校验当前已认证客户的访问权限。即使模型相信了这套说辞,记录服务也应拒绝返回无关记录。在系统提示词中写明拒绝此类请求,有助于引导模型;真正落实边界的,是记录服务的权限检查。
间接提示注入
一位负责销售的创始人让智能体总结潜在客户的邮件,并建议下一步行动。邮件中夹带了刻意编写的内容,试图把智能体引向另一个任务:从客户关系管理系统(CRM)导出无关联系人的信息,并发给外部收件人。创始人的请求是正当的,恶意指令却来自待处理的邮件。
网页、文档、附件和工具返回结果都可能成为同类攻击的载体。内容存放在内部系统,也不代表每条记录都可信:CRM 中的某段文字,可能最初就是客户提供的。Claude 语言模型的开发商 Anthropic 在其提示词注入防护指南中,将这些第三方来源作为单独的威胁模型处理。
对邮箱智能体来说,邮箱主人让它总结一封邮件,绝不能让发件人因此继承邮箱主人的工具权限。
提示词注入与越狱有什么区别?
越狱试图绕过模型自身的安全限制。提示词注入还可能针对应用的正常任务或权限:一份被篡改的销售摘要,或一次未经授权的联系人更新,在内容审核系统看来可能并无危险,却依然违反企业的业务规则。
内容防护和授权检查都需要做,因为它们解决的是不同问题。
提示词注入为何会成为业务风险?
智能体能接触的数据越多、能执行的操作越多,潜在损害就越大。 OWASP 单独发布的过度代理权限指南指出,功能过多、权限过宽、自主性过高,都可能导致智能体产生有害行为。
在邮箱或 CRM 系统中,这些后果会表现为具体的业务问题:
- 私密数据外泄。 输出、附件、出站请求或消息中,包含了接收方本不应获得的信息。
- 记录被擅自修改。 检索到的文本改变了智能体的行为,导致它编辑账户、删除有用的历史记录,或更改商机阶段。
- 决策被悄然扭曲。 潜在客户被描述得更符合筛选条件,投诉从摘要中消失,或者供应商获得了缺乏依据的推荐。
只读权限比写入权限更受限,却不代表机密数据不会泄露。如果应用能检索私密记录,并通过回答或对外连接将其披露出去,数据保密仍然需要专门保护。
Palo Alto Networks 旗下的 Unit 42 在 2026 年 3 月 3 日发布的研究中,记录了嵌入真实在线网页内容的恶意指令。发现攻击尝试,并不能证明所有目标都执行了这些指令。但这足以说明:允许智能体采取行动之前,就应把外部内容纳入威胁模型。
创始人应明确并认可工作流可承受的最大损害范围;开发者应在数据访问和工具调用处落实这一上限;运营人员则需要能够在这些边界受到试探时,暂停执行并展开调查。

如何做好提示词注入防御,避免演变成安全事件?
设计系统时,要假设注入有可能突破防线。 以下是针对邮箱或 CRM 智能体的控制方案建议,将 OWASP 关于权限和审批的指导落实到具体工作流中。它不是产品基准测试,也不保证系统能够免疫攻击。
先检查工具实际拥有的权限。即便一个函数名叫“总结收件箱”,只要它背后的凭证可以发送和删除邮件,它的能力就不止于总结。要检查底层账户和服务配置,不能只看函数名称。
接着,控制数据如何离开应用。网络白名单通过限定允许访问的目标,帮助减少可能的数据泄露路径。但允许访问某个邮件服务,不等于允许向所有收件人发信;允许访问某个 CRM 域名,也不等于允许访问其中每个账户或执行每种导出操作。对于已获准访问的服务,仍然要校验具体请求。
Anthropic 的安全部署指南介绍了将凭证放在智能体运行环境之外、限制网络访问,以及通过代理校验请求等做法。代理是转发请求的中间层,可以在转发前执行策略检查。对于托管式邮箱集成,这条边界也可以由自建的工具服务承担:凭证由该服务持有,超出授权范围的操作由它拒绝。
更多有关输入、输出和执行检查的内容,参见 AI 安全护栏。
如何按 Anthropic 的建议处理检索内容?
Anthropic 建议把第三方材料放在 tool_result 块中传入,标明来源,制定明确的不可信内容处理策略,并对字符串进行 JSON 编码,而不是直接拼接到自由格式的指令中。其指南还要求检查工具输出并监控行为,详见 Claude 当前指南。
回到销售场景,潜在客户的邮件正文应始终能被识别为“来自该发件人的邮件”。不能仅仅因为上一步模型已做过摘要,就将其复制到高权限指令中。把提取的信息传给下一步时,也要保留来源引用。
JSON 是一种结构化数据格式。正确转义其中的文本,可以防止文本破坏外层序列化结构,却无法阻止模型被文字含义说服。编码只是其中一层防护,授权仍须在其他环节强制执行。
让审批绑定具体操作
只有执行内容与审核人实际看过的内容一致,审核按钮才能保护业务。 对一个能发送附件、改写客户记录的智能体来说,“继续处理这个账户”过于笼统。
假设智能体建议回复潜在客户,并更新一条商机。审核人需要看到实际收件人、消息内容、附件列表、受影响的记录,以及字段修改前后的值。应用应保存获批的方案,并按这一版本执行。如果模型之后更换了收件人或附件,就必须重新提交审核。
审批还必须来自身份已认证、且具备相应权限的人。邮件中声称“已经有人批准”,只是来源内容,不构成真实的审批事件。模型不能自行创建审批记录,也不能调用另一个工具来绕过审批关卡。

如果审核人拒绝、审批过期或审核系统不可用,就让操作继续处于待处理状态。不能因为超时,就悄悄视为已经获批。设计重试机制时,还要避免一次发送失败导致同一条获批消息被重复发送。
这些是工作流的实现建议,并不意味着人工审核能够识别所有攻击。人在回路中的 AI 指南介绍了如何为审核队列安排人员,以及如何处理升级流程。
邮箱与 CRM 智能体上线前检查清单
先上线范围最小、但确实有用的工作流。 启用自主对外操作前,逐项检查:
- 身份: 每次读取和修改,都限定在已认证用户及获授权的业务账户范围内。模型不能自行选择权限更高的身份。
- 数据: 只检索任务所需的记录和字段。不要把密钥等秘密信息放进模型可见内容,并保留邮件、文档及 CRM 文本的原始来源。
- 工具: 读取、起草、发送、导出和编辑分别授权。移除工作流不需要的能力。
- 放行: 回答和工具参数对外发出前,先进行检查。校验收件人、附件、目标地址,以及允许修改的记录范围。
- 审批: 高影响操作必须针对具体执行内容进行审核,并由应用代码强制执行。审批缺失或发生变化,就暂缓操作。
- 运维: 在保护隐私的前提下保留操作日志,指定告警负责人,提供暂停机制,并在扩大访问权限前测试完整工作流。
对于创始人的销售助手,合理的起步范围是:阅读选定的潜在客户邮件会话,并提出回复草稿。大规模导出、自动发送或批量更新商机,都应作为独立能力,分别论证其必要性。权限范围应围绕你打算提供的功能来划定,而不是囊括集成本身能做的一切。
生产环境 AI 智能体影响范围控制手册进一步讨论了整体隔离与控制架构。所谓影响范围,就是一次故障可能在相互连接的系统中波及多远。
提示词注入测试:不仅看回复,更要查实际结果
只有被禁止的结果确实没有发生,测试才算通过。 助手可能先调用工具修改了记录,随后才在聊天中输出拒绝。检查时要查看工具服务和最终状态,不能只看对话记录。
上线演练应使用合成联系人、测试邮箱和受控环境。下面是一套应用测试方案,不是攻击载荷合集。
先验证正常授权流程
运行一次普通的潜在客户邮件总结任务。确认检索到的记录正确、草稿有用,并且只在策略规定的环节要求审批。正常业务仍须顺利完成。
覆盖两种攻击入口
在用户输入处加入未经授权的请求,同时测试包含任务重定向企图的第三方消息。确认无关记录仍无法访问,被禁止的工具操作会遭到拒绝。
检验审批与故障处理
分别测试审批后修改操作细节、审核被拒、策略服务不可用,以及执行重试等情况。确认应用会暂缓或拒绝操作,并避免重复产生实际效果。
核查证据与告警
检查 CRM 最终状态、发出的消息、尝试访问的目标、审批记录和策略日志。确认操作人员无需依赖模型的解释,就能追溯来源并停止工作流。
提示词、模型、检索流程、工具或权限发生变化时,应重跑相关测试。测试结果只适用于当时受测的配置,不能为所有未来版本背书。
日志应足以还原决策过程,但不要把审计记录变成整个邮箱的另一份副本。优先保留稳定的记录引用、必要的操作细节、策略版本,以及受访问控制保护的证据。要明确由谁调查被拦截的目标地址、意外导出和反复出现的审批失败。
哪些防御效果被夸大了?还有什么没解决?
任何模型、提示词、过滤器或安全护栏产品,都不应被视为完整解决方案。 OWASP 明确指出,检索增强生成和微调都无法充分防范提示词注入。检索增强生成(RAG)通过提供文档来帮助模型回答问题,但这些文档并不因此获得改变任务的权限。
更强的系统提示词可以改善模型行为,却无法收窄权限宽泛的凭证。分类器可以标记可疑内容,却无法决定某位员工是否有权披露某份附件。用另一个模型审核前一个模型,能够增加一道检查,但仍然需要独立的应用策略。
也不存在一个通用的检出率,能直接判断你的邮箱智能体是否已经具备上线条件。真正有用的限制取决于具体工作流:它可以读取哪些账户、修改哪些字段、把数据发往哪里,以及哪些操作必须审核。厂商在另一项任务上的测试结果,不能证明你的审批流程无法被绕过。
更站得住脚、也更有用的结论是:多层控制能减少风险暴露并限制后果,测试与监控则帮助发现失效之处。剩余风险仍然存在。
如果智能体已经在读取外部内容,并能披露私密信息或改变业务状态,就应立即采取措施。在权限、审批和故障处理得到强制落实之前,应暂缓扩大自主操作范围。一个不接触私密数据、也没有操作工具的公开文档摘要工具,潜在后果的范围更小,但仍须防止回答被操纵。
常见问题
如何防范提示词注入攻击?
限制数据访问和工具权限,将不可信内容与指令分开,校验输出和操作,对高影响操作要求审核,并监控执行结果。权限必须在模型之外强制执行;任何单层措施都无法消除风险。
什么是提示词?能举个例子吗?
“总结这位潜在客户的邮件,并起草一封回复供审核”,就是一个普通提示词。潜在客户的邮件是任务材料,不是更改任务要求的授权。
SQL 注入现在还存在吗?
存在。如果应用以不安全的方式构造数据库查询,SQL 注入仍然是现实问题。除了提示词注入控制措施,还需要针对数据库的专门防御,参见 OWASP 注入防护指南。
编程安全中的“注入”是什么意思?
在安全领域,注入是指不可信输入改变了解释器执行或处理的内容。提示词注入针对模型行为;其他注入漏洞则可能针对数据库查询、系统命令或浏览器代码。
能用一句话解释什么是注入吗?
就是输入内容越过了边界,被当成了它无权发出的指令。
代码注入有哪些类型?
例如 SQL 注入、操作系统命令注入和脚本注入。防御方法取决于所涉及的解释器。提示词注入与它们都存在信任边界问题,但不能用来统称所有代码注入。
提示词注入有哪些类型?
按主要进入路径,可分为直接注入和间接注入:攻击通过用户输入进入,或通过应用检索到的内容进入。图片中的文字及其他媒体也能携带指令;进入路径和媒体格式是两个不同维度。
黑客的 7 种主要类型是什么?
给黑客分类,对制定智能体的权限策略并无实际帮助。控制措施应依据:谁通过了身份认证、谁能影响内容,以及应用可以访问或修改什么。
DDoS 和 SQL 注入分别是什么?
DDoS 是分布式拒绝服务,利用分散的来源攻击系统可用性。SQL 注入则操纵数据库查询。它们与提示词注入是不同问题;可用性防护可参见 OWASP 拒绝服务防护指南。
下一步就从一个真实工作流做起
选一个正在运行的邮箱或 CRM 工作流,列出它能访问的数据、工具和外部目标。移除不必要的访问权限,让可能产生重要后果的操作等待针对具体内容的审批,并验证被拒绝的方案不会产生任何外部影响。只有正常任务和拒绝路径都运行正确,才扩大自主操作范围。
订阅邮件通讯,获取构建 AI 工作流的实用指南。
- 发布日期
- 分类
- Build
- 语言







