gpt4 book ai didi

firebase - FCM 安全 : Prevent multiple senders from pushing notifications to all devices?

转载 作者:行者123 更新时间:2023-12-02 01:14:04 26 4
gpt4 key购买 nike

作为我们解决方案的一部分,我们希望在每个客户站点部署一个 FCM“应用程序服务器”。每个客户站点都有自己的用户使用我们的应用程序使用他们自己的设备。但是,我们希望确保如果其中一个客户站点遭到破坏,攻击者无法滥用 FCM“应用程序服务器”(例如,通过向所有客户站点的所有设备发送通知)。

我们考虑为每个客户站点生成唯一的服务器 key ,而不是在所有客户站点之间共享凭据。这样一来,如果一个客户站点遭到破坏,我们可以禁用该服务器 key 并停止发送任何更多 FCM 通知。

问题:我们能否确定攻击者无法向所有设备发送全局通知?

  • 假设攻击者拥有服务器 key 并可以访问一个客户站点“应用程序服务器”,他们能否获得所有已注册设备的列表?
  • 是否有发送到所有设备的默认通知“主题”? (例如/topic/all 或/topic/global)。如果是这样,我们可以禁用该默认主题吗?

最佳答案

Instead of sharing credentials between all customer sites, we are thinking of generating a unique server key for each customer site. That way if one customer site is compromised, we can disable that server key and stop any more FCM notifications from being sent.

如果“我们正在考虑为每个客户站点生成一个唯一的服务器 key ”,您的意思是您只需为每个客户站点创建一个 Firebase 项目,那么我认为这是正确的方法。

Can we be sure that an attacker cannot send global notifications to all devices?

应用程序可以通过实现 getToken(authorizedEntity, scope) 来接收来自不同发件人的消息,这将为每个发件人生成不同的 token 。为了否定此操作,您可以简单地调用deleteToken(authorizedEntity, scope) ( my reference )。

这将使相应发件人的 token 无效(这是他们可能拥有的 token ,并且应该是他们应用服务器上唯一的 token ),这将自动禁止他们接收到您的应用程序的消息。

因此,只要您能够将他们作为有效发件人从您的应用中删除,就万事大吉。

Assuming an attacker has a server key and access to one customer site "app-server", can they get a list of all the registered devices?

这取决于应用服务器的实现方式。如果客户的App服务器只是用来发送消息,而token是存放在别处的,那么很可能不会。没有 API 可以根据服务器 key (see #1 here) 在服务器端为应用程序检索注册 token 。

Is there a default notification "topic" that sends to all devices? (e.g. /topic/all or /topic/global). If so, can we disable that default topic?

没有。可以选择通过 Firebase 通知控制台向特定应用程序发送通知,但如果该应用程序未授权与该项目对应的发件人 ID,它将不会收到来自该项目的任何消息。我在发帖前测试了这种行为,所以我确信它是这样工作的。

关于firebase - FCM 安全 : Prevent multiple senders from pushing notifications to all devices?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43523967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com