【问题标题】:Is it possible to have multiple servers share a single Firebase Cloud Messaging server key?是否可以让多个服务器共享一个 Firebase 云消息服务器密钥?
【发布时间】:2017-03-13 06:37:35
【问题描述】:

在使用 Firebase 云消息传递 (FCM) 的 Firebase 项目中,有一个自动生成的用于云消息传递的服务器密钥。 FCM 文档并未表明只能有一个服务器使用该自动生成的密钥(至少我可以找到)。但是 documentation 确实明确指出应该安全地存储服务器密钥。

第一个问题:我错过了单个服务器记录的限制吗?

如果没有明确的限制,我确实想到 FCM 可能会内置检查以确保给定 Firebase 项目发送消息的请求确实来自单个 IP 地址,拒绝来自多个 IP 地址的请求。

第二个问题:单服务器限制是隐含的吗?

如果可能有多个服务器,每个服务器都尽职尽责地保护服务器密钥的隐私以及记录为“最佳(和安全)实践”的任何其他内容,我突然想到FCM 可能基于此语句根据服务器类型限制请求:

HTTP 标头必须包含以下标头:

授权:key=YOUR_SERVER_KEY

确保这是服务器密钥,其值可在 Firebase 控制台“设置”窗格的“云消息传递”选项卡中找到。 FCM 拒绝 Android、iOS 和浏览器密钥。

最后一个问题:“Android、iOS 和浏览器密钥被 FCM 拒绝”这句话是什么意思。在服务器类型上下文中是什么意思? 如果此语句表示来自移动设备(Android 或 iOS)或浏览器的请求将被 FCM 拒绝,那就更清楚了。我邀请对此进行详细说明,但不是讨论。

【问题讨论】:

    标签: android firebase firebase-cloud-messaging


    【解决方案1】:
    1. AFAIK,FCM 没有单一服务器限制。还有Receiving Messages from Multiple Senders 的主题,在这种情况下,每个发送者(如果是服务器)必须有权访问您的服务器密钥才能发送到您的客户端应用程序。

      所以我相当确定没有幕后检查 IP 地址(如果它与平常不同,这会限制发件人发送消息),除非你设置它你自己(我不确定它是否仍然可以通过API Console 设置它)。这也是服务器密钥应该保密的原因之一。为了防止未经授权的用户滥用它。

    2. 我不确定这里的问题是什么。您能否详细说明“FCM 可能会根据服务器类型限制请求”。

    3. 在 FCM 之前,曾经有不同类型的 API Keys,分别是 ServerAndroidiOS浏览器 键。无论 GCM 的类型如何,开发人员都可以使用他们想要的密钥,但后来限制只允许使用服务器密钥。请参阅我的回答 here 了解更多详情。

      选项也可用在创建新API键之前,但是当前选择创建API键时,它将自动生成,并且您将给出的选项是以下一个限制:

      • 无(默认)
      • HTTP 引荐来源网址(网站)
      • IP 地址(Web 服务器、cron 作业等)
      • Android 应用
      • iOS 应用

    【讨论】:

    • 我确实错过了关于多个发件人的链接,这清楚地表明多个服务器可以共享一个服务器密钥。但是文档指出,有 100 个多个发件人的限制。这是否意味着只有 100 台服务器?或者您是否会将其解释为可以使用数千台服务器,但只有 100 台具有唯一的发件人 ID 值?
    • 从您所说的看来,Android、iOS 和浏览器键注释似乎很明显适用于传统用途,但与 FCM 的新采用者无关。正确的?我的问题是试图辨别 Google Cloud Messaging 服务器是否在过滤某些类型的请求者。
    • 发件人 ID 确实代表发件人,所以是的。对。 Android、iOS、浏览器密钥是以前的 API 密钥类型,但今天不再适用。 AFAIK,没有从请求的来源进行任何检查,因为预计只要请求具有服务器密钥,它就已经安全
    • 您猜猜为什么会有 100 个唯一发件人限制吗?
    • 如果我猜的话,可能是为了防止通知泛滥到应用程序。想象一下,如果所有这些发件人同时发送通知。这对用户来说会很痛苦。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-21
    • 1970-01-01
    相关资源
    最近更新 更多