为啥我必须对注册令牌保密?

Posted

技术标签:

【中文标题】为啥我必须对注册令牌保密?【英文标题】:Why must I keep the registration token secret?为什么我必须对注册令牌保密? 【发布时间】:2017-02-07 23:35:52 【问题描述】:

根据这个link,注册令牌必须保密。

注册令牌:FCM SDK 为每个客户端应用实例生成的 ID。单个设备和设备组消息传递是必需的。请注意,注册令牌必须保密。

令牌有多敏感?任何拥有注册令牌的人都可以向设备发送通知吗?还是我的项目特定的令牌?

如果其他人获得设备注册令牌会有什么风险?

【问题讨论】:

【参考方案1】:

令牌有多敏感?任何拥有注册令牌的人都可以向设备发送通知吗?还是我的项目特定的令牌?

不是真的。如果与注册令牌无关的发件人发送消息,那么他们将收到error:MismatchSenderId

注册令牌与特定的发件人组相关联。当客户端应用注册 FCM 时,它必须指定允许哪些发件人发送消息。在向客户端应用程序发送消息时,您应该使用其中一个发件人 ID。如果您切换到其他发件人,现有的注册令牌将不起作用。

如果您以此为基础,那么将注册令牌保密似乎并不是什么大问题。但是,如果发生未经授权的用户有权发送消息的情况,如果他不知道/拥有注册令牌,那么它几乎没有用处。只需将其视为另一种安全措施。

如果其他人获得设备注册令牌会有什么风险?

从我上面提到的场景来看,如果有人(未经授权的用户)有权发送消息和注册令牌,那么他们几乎可以向它发送任何东西。

【讨论】:

以上是关于为啥我必须对注册令牌保密?的主要内容,如果未能解决你的问题,请参考以下文章

我应该自己保存firebase令牌还是在注册远程通知时自动完成?

█c# 为啥有的dll不能直接引用,必须regsvr32 注册后 才能引用?

使用令牌通过已注册的应用程序访问 Azure Blob

身份验证令牌没有注册级别访问权限

为啥我对注册表的更改不保留在 C++ 中?

为啥每次用户启动应用程序时都要注册推送通知?