0

我正在开发一个允许用户创建多个身份的 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'
}

此结构允许用户使用不链接回其用户文档的别名来创建内容。其他用户无法通过检查客户端中加载的数据来找出由同一个人控制的别名。

但是,如果发生数据库泄露,别名匿名性就会丢失。

我的问题是:如何存储这些数据,以便即使恶意第三方可以访问整个数据库,他们也无法确定哪个用户拥有哪个别名?

4

1 回答 1

0

您可以为每个别名创建一条新记录。然后,您通过 CODE 而不是 DATABASE 中的加密密钥对该别名记录的 ID 进行加密,然后将该加密的别名记录密钥保存到主要配置文件的记录/数据中。这样,DB 的妥协不会损害配置文件的匿名性,因为他们没有解密的密钥。

于 2021-10-10T03:39:15.503 回答