【问题标题】:How secure is firebase cloud messaging at client side?Firebase 云消息在客户端的安全性如何?
【发布时间】:2018-06-09 07:59:17
【问题描述】:

确实,firebase 提供了客户端 sdk 和服务器端 admin sdk 来使用 firebase 云消息传递。

让我困惑的是:

我们将客户端初始化代码包含在公共 javascript 文件或脚本标记中。有人看不到这个初始化凭证并直接向连接到我们应用程序的设备发送发布请求吗?如果用户不断发送垃圾邮件或恶意通知怎么办?整个 FCM 功能不应该只由 admin sdk 提供吗?

我正在为一个项目的 nodejs 应用程序使用 firebase 托管,并且对如何实施 FCM 感到很困惑。

Firebase 通过云消息传递和通知提供什么样的身份验证或检查?

在我的网络应用客户端中使用 FCM 通知的安全性如何?

【问题讨论】:

  • 使用 FCM 发送消息需要您指定所谓的 FCM 服务器密钥,该密钥(顾名思义)并不意味着公开。 FCM 服务器密钥不是客户端配置数据的一部分。客户端初始化需要公开的配置数据。

标签: javascript node.js firebase server firebase-security


【解决方案1】:

切勿公开您在旧版 FCM 中使用的 FCM Api 密钥。如果您对此感到担心,只需从您的项目的 Google 云管理控制台中禁用 GCM 发布 API。

现在他们的新 v1 API 使用使用服务器上的服务帐户密钥颁发的 Oauth 令牌。这样就可以停止滥用。切勿将服务帐户密钥放在可公开访问的地方。您必须在您的项目的 Google 云管理控制台中启用此功能。

数据库 url、存储桶信息、app id 和 db 的 apikey 可以安全地暴露给公众。

例如,在我的 Web 项目中,单击应该发送通知的按钮,我将数据发布到实际上具有 FCM 部分的 Servlet。现在这将防止滥用。

【讨论】:

  • 在你的网络项目中,让它调用一个服务器端代码,如果可能的话,它会实际发布通知
猜你喜欢
  • 2021-02-07
  • 2014-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-24
  • 1970-01-01
相关资源
最近更新 更多