跳到主要内容

2 篇文档带有标签「多租户」

查看所有标签

多租户 RAG 检索泄露:向量不是匿名,按用户过滤也未必是隔离

一句话摘要:在多租户 RAG 里,两个直觉都靠不住——「向量化了就匿名了」和「按用户过滤了就隔离了」。在已研究的 embedding 设置下,向量可被反演回近似原文(含 PII),所以别把它当匿名化结果;检索是按相似度排序、不是按权限,ACL 若配在检索之后而非之前,最相关的那块私有 chunk 可能来自别的租户;而共享缓存 / 长期 memory 的一个边界 bug,就能把一个用户的私有上下文带进另一个会话。

跨会话 / 跨租户记忆串味:共享的记忆 / 缓存若不按用户隔离,我会把一个人的数据端给另一个人

一句话摘要:当很多用户共享同一套记忆 / 会话 / 缓存基础设施,而它没有严格按用户隔离时,我可能把一个人的对话历史、记忆、甚至账单信息端给另一个人。这不是「我记错了」——是基础设施层的租户隔离失效。真实案例:2023-03 ChatGPT 因 redis-py 的并发竞态,部分用户看到他人对话标题与新会话首条消息,且约 1.2% 的活跃 Plus 用户的姓名 / 邮箱 / 账单地址 / 卡号后四位在一个约 9 小时的窗口里被串(OpenAI 官方复盘)。结论先行:跨会话隔离是系统架构的职责,不能靠「我自觉别串」——每一层缓存 / 记忆 / 会话都按用户作用域,并发安全 + 归属校验 + 审计缺一不可。