我正在开发一个允许用户创建多个身份的web应用程序。数据是结构化的(采用NoSQL),这样每个用户都有一个user文档和几个alias文档。别名in存储在用户文档中,但用户信息不存储在别名中。
user123: {
aliasIds: [MikeMain, Anon]
email: 'foo@bar.com',
...
}
MikeMain: {
name: 'Mike',
catchPhrase: 'Always remain hydrated'
}
Anon: {
name: 'Unknown',
bio: 'Purposely left blank'
}此结构允许用户使用别名创建内容,该别名不会链接回其用户文档。其他用户无法通过检查加载到客户端的数据来找出哪些别名由同一个人控制。
但是,在数据库泄露的情况下,别名的匿名性将会丢失。
我的问题是:我如何存储这些数据,以便即使恶意的第三方可以访问整个数据库,他们也无法确定哪个用户拥有哪个别名?
发布于 2021-10-10 03:39:16
您可以为每个别名创建一条新记录。然后,通过不在数据库中的代码中的加密密钥加密别名记录的ID,然后将加密的别名记录密钥保存到主要配置文件的记录/数据中。这样,DB的妥协不会危及配置文件的匿名性,因为他们没有要解密的密钥。
https://stackoverflow.com/questions/69509344
复制相似问题