文档内夹着要求忽略用户的指令,怎样验证它不会改变当前任务?
文档中的“忽略用户要求”应作为待处理内容,而不是新的授权。排查重点是模型或应用有没有把资料文字当成高优先级指令,并让它影响工具执行。
先从这里排查
文档中的“忽略用户要求”应作为待处理内容,而不是新的授权。排查重点是模型或应用有没有把资料文字当成高优先级指令,并让它影响工具执行。可用明确标注的合成注入文本验证读取行为,但测试不应访问真实秘密或触发外部写入。
先用脱敏样本固定偏离任务的行为
适用于网页、邮件或知识库材料夹带指令,导致摘要偏题,或要求工具读取与任务无关的文件。先固定一个脱敏样本,记录预期任务,例如只提取文档标题。判断失败要依据实际输出与工具动作,而不是仅看模型有没有在文字里识别出“这是注入”。
检查资料被包装成了哪种消息
核对应用发送的消息列表,确认外部内容使用单独的数据字段,没有取得系统指令的身份,也没有被包装成用户的新授权。工具有过宽权限时,单次误判可能产生真实后果,因此还要核对允许访问的资源。联网读取资料不意味着允许资料指挥执行,排查时也不应关闭全部来源来回避正常任务。
隔离外部指令并限制工具动作
给资料加上明确边界并保持其不可信身份,让任务指令与被分析内容分开。对会写入或披露数据的工具使用应用层限制,不能只依赖模型口头承诺。先在隔离测试资料中加入诱导语句,确认应用继续完成原任务;需要验证拒绝行为时,用无害占位文本代替真实凭证。
同时验证原任务完成和额外动作被拒绝
测试应覆盖直接命令以及藏在引用或工具结果中的诱导内容。检查最终输出是否仍满足任务,并核对工具记录没有执行额外动作。仅删除注入文字而忽略原任务,也不算完整通过;正常文档仍应能被处理,限制应准确作用于非授权行为。
提示词隔离不能保证完全阻止注入,多层权限与输入处理仍有必要。本文没有攻击真实网站,也没有进行秘密读取测试。MCP等协议帮助组织工具通信,但协议可连接并不意味着所有外部内容可信;实际风险还取决于客户端如何传递消息以及工具暴露了什么操作。
核对来源
以下资料用于核对概念和方法。文中的示例与测试范围分别注明,实际使用时请核对所用工具的版本。