作者:2分之11989_330 | 来源:互联网 | 2023-02-11 19:16
我们有一种设计方法,为每个注册用户创建一个主题.
创建新用户
使用生成的令牌将其保存到我们的数据库中
订阅/topics/{user-token}
用户登录android或ios设备时.
因此,如果用户有多个设备,并且我们想要发送用户特定通知,我们只需将其发送给/topics/{user-token}
所有设备即可.
我们还没有遇到过几个用户的任何问题,但Firebase的限制是否正常,这是一个好方法吗?
1> Diego Giorgi..:
(我正在将我的意见转移到答案中)
大多数时候,每个用户创建一个FCM TOPIC并不是一个好主意.
发送到FCM TOPICS的消息是公开的.任何用户(甚至来自不同的应用程序)都可以订阅/ topics/{user-name}并接收这些消息.
示例:
另一位开发人员可以从您的apk复制google-services.json文件.
然后他可以订阅任何主题.
要拦截您的用户消息,攻击者仍然需要猜测{user-name}或您正在使用的任何其他标识符.但是如果你认为这种情况可能会发生,那么问题就很大了,因为你永远不会知道是否有人收到你的邮件副本,而你通常永远不会改变{user-name}.
这不是FCM的安全问题.这是主题API设计的一部分.
如果您需要安全消息,可以将它们直接发送到设备令牌.
如果您仍想为每个用户执行一个主题,请注意不要发送敏感数据或不应被第三方拦截的数据.