← 返回资讯

同一提示词来自两个租户,怎样证明网关结果缓存不会串答案

2026-10-24

两个租户提交同一段文字,结果未必可以共享。假上游按租户返回不同标记时,如果缓存键只有请求体摘要,第二个租户可能拿到前一个的内容。本文验证自建应用结果缓存的键边界,区别于HTTP代理缓存和提供方prompt缓存。

用相同输入与不同身份制造最小反例

附件所有请求的payload都是same question。请求依次是租户a、同租户重复、租户b、租户a权限版本改变、租户a配置版本改变。只按payload摘要缓存,后四次全部命中,合计四次;包含租户、权限版本、配置版本和payload摘要的参考键,只让第二次命中,合计一次。

跨租户安全命中数应为零,同时同租户同版本应有一次命中。只断言跨租户不命中不够,把缓存完全禁用也能满足;需要正例证明合理复用仍存在。这里的响应归属只用假租户标记,不生成模型文本,也没有真实个人数据。

权限与配置变化也属于键空间变化

同一租户权限收窄后,旧结果可能包含新权限不该看到的信息;模型路由、知识库或提示模板更新后,旧结果也可能不再符合当前配置。版本标识应来自可信服务端,不能直接让调用方随意填一个固定版本绕过隔离。缓存项还应带可审计的来源边界,方便失效与排错。

正文、参数、模型和其他会影响结果的输入,需要稳定规范化后再摘要。不能仅删掉看起来无关的字段,导致实际不同请求合并;也不要把原始Key直接放进缓存键或日志。虚拟Key换发但租户与授权边界没变时,是否继续复用由策略决定,凭证字符串本身不一定是最佳租户身份。

命中前仍要完成当前授权

缓存不是绕过鉴权的捷径。即使有同键条目,也应先确认当前请求有权访问对应内容;权限失效事件延迟同样需要考虑。公共共享缓存若确有需求,应建立明确公共域和可共享数据分类,不能默认把所有相同payload都当作公开答案。

RFC 9111定义HTTP缓存语义,本文没有把应用结果键设计冒称为HTTP协议要求;LiteLLM虚拟Key资料提供租户访问控制背景。实际运行的是内存键集合和假归属比较,没有测试真实网关缓存插件或并发击穿。附件的一次安全命中、零跨租户安全命中,可以作为集成测试目标;还需补齐持久缓存、版本传播和缓存失效过程,才能证明部署后的隔离边界。

配套样本与复核入口

下载本篇独立合成输入和实验运行器。上述文件放在同一目录后运行 python run_lab.py C039。完整运行需要全部四十四份输入及相关配置。结果中的method区分离线计算、静态参考检查与回环实测,不能把前两者当成真实网关已通过。

资料核对日期:2026-10-24。官方依据1;官方依据2。

与本站相关基础教程的区别:旧文讲缓存层次与降本;本文只测试自建结果缓存键是否含租户授权与配置版本边界,不测试模型结果质量或prompt缓存命中率。

加微信,把这一页发到你手机上

扫码加站长企业微信,会自动把这一页的链接发给你。模型接入、token 计费上有问题,也可以直接问。

去留微信

不想自己搭网关、自己维护渠道?

力达云是托管的 OpenAI / Anthropic 双格式端点,一期提供 DeepSeek,注册送 ¥5 额度。

去试用

这个页面有问题?

提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。