【发布时间】:2018-09-19 04:21:26
【问题描述】:
我正在尝试使用 Firebase 安全规则来防止在我的应用中发生一些不良情况。我目前的结构是:
"usernames": {
"twitter:123": "jack",
"google:456": "bob"
}
这里的问题是我无法实施安全规则,这样第三个用户(比如facebook:789)就无法进入并劫持用户名“bob”并访问该用户的数据(我的数据已整理好)通过用户名)。
对于这种情况,可接受的解决方法是什么?我尝试反转键/值对,这允许用户名的唯一性:
"usernames": {
"jack": "twitter:123",
"bob": "google:456"
}
但是,由于这不会强制 UID 的唯一性,任何用户都可以发送垃圾用户名 - 恶意的 facebook:789 可以使用任何尚未使用的用户名,这将是一个 PITA 来解决。
有没有办法使用 Firebase 安全规则来解决这个难题?还是唯一的答案是受信任的服务器?受信任的服务器仍会出现可能的并发问题。
【问题讨论】: