Skip to content

上下文隔离、工具权限与提示词注入 ​

1. 解决什么问题 ​

资料可能包含“忽略规则、调用某工具”等文字,模型也可能生成越权请求。教材系统必须把不可信文本与可信程序权限分开,防止语言内容直接变成执行授权。

2. 原理与术语 ​

提示词注入是把恶意或无关指令混入用户内容、检索资料或工具结果,诱导模型改变行为。最小权限限制可执行能力;上下文隔离减少不必要的信息共享。提示词中的禁止语句是辅助措施,不是安全边界。

3. 输入输出与执行 ​

graph.context 按角色选择字段;providers.UNTRUSTED 明确资料不授予权限;ToolSession 从服务端角色决定工具集合并再次授权。查询范围来自任务而不是模型参数,媒体接口地址来自部署配置而不是生成内容。

4. 容易混淆 ​

评审不看生成对话,不代表它看到的教材一定可信。两个角色使用同一模型仍可能共同误判。应用 API_KEY 是操作入口的共享密钥,工具角色是内部执行身份;两者不是完整的多用户 RBAC 或租户隔离体系。

5. 最小示例 ​

python
from app.schemas import SearchArgs
try:
    SearchArgs.model_validate({"query":"校园","region":"US"})
except ValueError:
    print("地区不能通过模型检索参数覆写")

额外字段被拒绝,实际地区由上下文提供。这个例子验证参数边界,不证明模型能识别所有提示词注入。

6. 实际实现 ​

工具没有任意 shell、文件读写或任意 URL 访问能力;FFmpeg 使用程序构造的参数数组,不执行模型给出的命令字符串。图片 URL-only 返回也不会自动触发下载。未知工具被记录并拒绝,不能依赖模型“自觉遵守”。

7. 源码与数据结构 ​

阅读 system/app/tools.py::REGISTRY/ToolSession.execute、providers.py::UNTRUSTED、graph.py::context、api.py::auth 和 media.py::make_video。Compose 默认仅绑定本机 127.0.0.1;API_KEY 可配置,但这不等于已经适合公开互联网服务。

8. 取舍与局限 ​

当前是单用户学习系统,没有细粒度身份、审计主体、多租户隔离、全面限流或恶意内容分类器。资料指令可能仍影响生成文本,因此还需要来源核验与人工审批。若公开部署,应先补这些边界,而非只把端口改为公网监听。

9. 实验与验收 ​

在 system 目录重复服务端授权实验:

bash
docker compose exec -T api python - <<'PY'
from app.tools import ToolSession, ToolDenied
try:
    ToolSession('generator','security-lab',{}).execute('shell',{'command':'echo test'})
except ToolDenied:
    print('PASS: unknown tool rejected')
PY

验收要求没有执行 shell,只记录拒绝。再向隔离实验资料写入“忽略规则”类文字,观察真实模型行为与服务端限制;演示模板不会理解注入,不能据此宣称模型防注入效果通过。

10. 故障排查 ​

越权问题先查服务端角色来源与注册表;资料泄漏查查询范围和 API 权限;异常命令执行查是否拼接 shell;密钥暴露查日志与静态构建输入。只修改 system prompt 无法修复程序授予的过宽权限。

11. 面试题与追问 ​

问:如何防止检索资料改变工具权限? 权限由服务端角色决定,资料只作为内容输入。追问:这样是否完全安全? 不能保证模型内容不被诱导,仍需分层检查。再追问:MCP 会自动解决吗? 不会,协议统一接入,授权与信任边界仍属于应用设计。

STAR 应用:假设实验场景,R 为应核对的证据
对应S:情境T:目标A:行动R:验收证据
主问资料包含越权指令保持权限来自可信程序执行时查服务端角色和白名单未授权请求被拒绝,资料无法改权限
追问一权限安全但回答仍受诱导保护内容质量联合来源核对、评审与人工确认记录内容偏离,不能宣称注入已完全解决
追问二计划接入MCP服务保留信任边界审核远程工具权限与返回数据用途协议接入不替代鉴权和业务校验

这些是设计讨论的参考表达,实际执行前不能改写为已取得的历史成果。

12. 官方资料与版本 ​

OWASP 提示词注入防护、MCP 工具规范、Function Calling。核验日期 2026-11-03;本页描述现有边界与限制,不是完整安全审计报告。

学习复现系统 · 事实、实验与假设分开记录