android - 将 GCM 注册 ID 传递给合作伙伴服务器是否安全

标签 android google-cloud-messaging

我们有一个 Android 应用程序,我们希望允许多个(50-100 个)第三方向该应用程序发送推送通知。

因此,如果应用用户从一个或多个第三方导入内容,则他们可以从这些第三方接收推送通知。

我们认为我们可以通过为每个第三方创建一个 GCM API key 来做到这一点,然后在导入内容时,我们会将 GCM 注册 ID 传递给第三方的服务器(该服务器的 URL 包含在内容)。

但是,我们在文档中看到了这一点; “请注意,注册 token 必须保密。” (https://developers.google.com/cloud-messaging/gcm#senderid)。

理论上,用户可以从非合作第三方导入内容,此时他们会获得传递给他们的 GCM 注册 ID。这显然可以通过执行查找来停止,因此我们只将 GCM 注册 ID 传递给已知的第三方。

然后在应用程序内处理推送通知,以便只有第三方内容受到影响,所以这不是真正的问题(此外,我们可以撤销任何通过垃圾邮件发送过多更新等滥用它的第三方的 API key ) .).

为什么只有拥有 API key 的服务器才能对注册 ID 进行任何操作?

在上述场景中是否存在问题?即是否将其传递给已知的第三方考虑保密?

注意;我们考虑过让所有第三方向我们的服务器发送消息,然后让我们通过 GCM 将该消息传递到应用程序。但理想情况下,我们希望避免这种依赖。


按照deadlydragon00提出的要点:

  • 我们的 Google 帐户上没有任何付费服务。因此,第三方合作伙伴不存在使用提供的 API key 开具账单的风险。
  • 显然过度使用推送通知是一个问题,但由于第三方合作伙伴只能使用它来影响他们在我们应用中的内容,这会给他们带来不好的影响,所以我们不认为这是一个大问题(此外,我们会为每个第三方提供他们自己的 API key ,因此可以简单地切断对任何这样做的人的访问)。

最佳答案

要考虑的解决方案是使用 multiple senders .

To make this possible, all you need to do is have each sender generate its own project number. Then include those IDs in the sender field, separated by commas, when requesting a registration.

关于android - 将 GCM 注册 ID 传递给合作伙伴服务器是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31133039/

相关文章:

android - Android 4.4.+ 上的 db4o : storing an object fails because cannot cast long to integer

android - 在 Android Studio 中使用 github 库

android - 使用Google登录Android SDK连接到Youtube帐户

android - 警告 : Different store and key passwords not supported for PKCS12 KeyStores. 忽略用户指定的 -keypass 值。在 Android Studio 中

android - 如何返回到 android 中的前 3 个 Activity?

java - 向 GCM 发送请求会导致 JSON_PARSING_ERROR

android - isRegistered() 与 isRegisteredOnServer()

android - 后台应用程序的 GCM 推送通知导致崩溃