【发布时间】:2017-09-17 08:24:00
【问题描述】:
作为我们解决方案的一部分,我们希望在每个客户站点部署 FCM“应用服务器”。每个客户站点都有自己的用户,他们使用我们的应用程序使用自己的设备。但是,我们希望确保如果其中一个客户站点遭到入侵,攻击者无法滥用 FCM“应用服务器”(例如,通过向所有客户站点的所有设备发送通知)。
我们正在考虑为每个客户站点生成唯一的服务器密钥,而不是在所有客户站点之间共享凭据。这样一来,如果某个客户站点遭到入侵,我们可以禁用该服务器密钥并停止发送更多 FCM 通知。
问题:我们能否确定攻击者无法向所有设备发送全局通知?
- 假设攻击者拥有服务器密钥并可以访问一个客户站点“app-server”,他们能否获得所有已注册设备的列表?
- 是否有发送到所有设备的默认通知“主题”? (例如 /topic/all 或 /topic/global)。如果是这样,我们可以禁用该默认主题吗?
【问题讨论】:
-
您所说的“服务器密钥”是什么意思,它将如何与 FCM 一起使用?
-
“应用服务器”使用服务器密钥向 FCM 连接服务器进行身份验证。以下是更多详细信息:firebase.google.com/docs/cloud-messaging/server
-
我以为这就是您的意思,但一个 Firebase 帐户怎么可能拥有多个服务器密钥?据我了解,只有一个。
-
奇怪的是我也看到了这种说法。但是,我们绝对可以添加多个服务器密钥。以下是步骤:1. 转到 Firebase 控制台console.firebase.google.com2. 点击左上角的齿轮图标 3. 点击在“项目设置”4.点击“云消息”选项卡5.请注意,在第一部分“项目凭据”下,右侧有一个蓝色的大按钮“添加服务器密钥”这似乎可以解决问题,或者我可能误解了多个服务器密钥的功能或交互。
-
有趣...有用吗?
标签: firebase push-notification firebase-cloud-messaging