知识库中的文字可以作为回答资料,却不应自动变成应用指令。降低文档提示注入风险,需要同时管理资料来源、工具权限和异常处置;仅增加一句安全提示不能作为上线验收依据。以下是基于官方资料整理的检查方法,未做产品实测。
- 把文档当资料处理,不能让它自行扩大系统权限。
- 区分检测到风险、阻断操作和答案真实这三件事。
- 用正常样本与干扰样本对照,记录输出和实际工具行为。
为什么接入知识库后仍要检查指令边界
OWASP将来自网站、文件等外部资料的行为干扰归为间接提示注入,并指出RAG并不能彻底消除提示注入风险。[1] 例如,资料本应解释报销流程,却夹带要求应用改发消息的文字。这里讨论的是示例风险,不是已发生的客户案例。
编辑建议:整理每个资料来源的负责人、允许用途和更新方式。回答需要引用文档时,标清资料名称与位置;遇到文档试图改变用户任务或请求额外权限时,将其作为待核查内容,不把引用到它视为获得授权。
检测通过,不等于答案可靠
Microsoft文档明确区分攻击检测与后续处置:独立Azure AI Content Safety API提供检测结果,是否阻断、排除文档或交给人工,由应用逻辑决定。它也不负责判定内容是否事实准确。[2] 因而“未检出攻击”不能替代来源核对。
编辑建议:把验收分成两列。一列检查答案有没有对应证据;另一列检查是否发生用户未授权的操作。仅做只读问答时,先保持工具只读;确需发送、写入或删除时,再单独定义操作权限、确认人和审计记录。
用一组对照材料做回归
建议在测试环境准备同一份业务资料的两个副本:一个保留原文,另一个加入明显偏离任务的模拟指令。使用相同问题、同一模型配置和相同权限分别运行,不接真实客户数据或真实发送接口。
记录五项结果:检索到了哪段资料、答案引用是否准确、是否偏离用户问题、是否尝试调用不应开放的工具、拦截后用户看到了什么提示。再加入正常但含“忽略”“删除”等词的业务文档,检查是否误拦正常内容。这里的步骤是编辑建议,不是标准认证或已经测得的防护效果。样本应覆盖实际使用语言;少量测试通过不代表覆盖所有攻击方式。
明确谁能批准操作,谁负责复查
OWASP建议限制权限,并对高风险操作加入人工批准。[1] Anthropic在2025年的浏览器防御文章中同样强调,提示注入仍未解决;该文章的浏览器测试不能直接证明某个企业知识库已经安全。[3]
建议由业务负责人定义允许任务与高风险操作,开发人员在服务端落实权限检查,资料负责人处理可疑内容,运行负责人跟进告警。评估新增检测带来的调用费用、延迟及误拦处理成本。文档、模型或工具权限改变后重复回归;没有事故不等于已经验证边界。
适用条件与限制
适用于接入外部文档的知识库问答及其工具扩展。本文没有实测任何产品,不提供攻击成功率或安全保证。检测能力与费用以具体服务、模型、语言和配置为准;高风险生产系统还需按业务要求进行专门安全评估。