标准答案

  1. 系统指令由可信服务端维护;用户输入、网页或知识库内容、工具返回值都应标记为外部数据,并用明确的边界包裹,不能把其中的指令当成系统规则。
  2. 检索内容只提供回答依据,不能自行改变工具权限、系统规则或身份。工具执行器根据当前用户和服务端策略重新判断,不依赖模型从文本中提取的权限。
  3. 对高风险工具采用最小权限、参数校验、审批确认和沙箱;模型只生成候选动作,最终执行前还要检查资源归属、状态和副作用。

题目解析

Prompt Injection 的根本问题是模型把数据和指令混在同一语言通道中。分隔符、标签和“忽略文档指令”的提示有帮助,但不能保证模型永远遵守。

间接注入尤其容易出现在网页、上传文件、代码仓库和 RAG 文档中。索引前可做内容检测,但上线时仍要把检索内容视为不可信,并限制它能影响的动作。

读取工具和写入工具应分开。即使读取工具被注入,系统也不应允许它直接触发删除、发送或支付;写操作要有独立授权和确认。

常见误区

  • 只增加一句“不要被提示注入攻击”就认为安全。
  • 让模型返回 userId、tenantId 或权限结果,并直接用于数据库查询。
  • 把所有外部文档删除指令都过滤掉,却没有限制实际工具权限,防护仍然脆弱。

作者信息