我正在开发一个允许用户创建多个身份的 Web 应用程序。数据是结构化的(在 NoSQL 中),使得每个用户都有一个user
文档和几个alias
文档。别名 ID 存储在用户文档中,但用户信息不存储在别名中。
user123: {
aliasIds: [MikeMain, Anon]
email: 'foo@bar.com',
...
}
MikeMain: {
name: 'Mike',
catchPhrase: 'Always remain hydrated'
}
Anon: {
name: 'Unknown',
bio: 'Purposely left blank'
}
此结构允许用户使用不链接回其用户文档的别名来创建内容。其他用户无法通过检查客户端中加载的数据来找出由同一个人控制的别名。
但是,如果发生数据库泄露,别名匿名性就会丢失。
我的问题是:如何存储这些数据,以便即使恶意第三方可以访问整个数据库,他们也无法确定哪个用户拥有哪个别名?