【问题标题】:How to prevent push notifications to app after reinstallation?重新安装后如何防止向应用推送通知?
【发布时间】:2016-10-16 14:54:41
【问题描述】:

由于 iOS 9 应用程序在重新安装应用程序后更改了 apns 令牌。 但 iOS 8 和 7 不这样做。

如何区分使用 iOS 8 和 iOS 7 的下一种情况?

  1. 用户安装了一个应用程序。
  2. 用户启动应用程序并允许在应用程序中推送通知。 (我得到了一些令牌)
  3. 用户登录/注册。 (我将令牌与注册用户连接)。
  4. 用户删除了该应用。
  5. 用户安装了应用程序,启动了一次并允许推送通知。 (得到相同的令牌,)

完成这些操作后,该未注册用户无需登录即可收到有关其帐户中某些操作的通知。 如果是银行/金融类应用,会影响注册用户的安全。

如何预防?

【问题讨论】:

    标签: ios iphone push-notification apple-push-notifications token


    【解决方案1】:

    您可以致电
    [[UIApplication sharedApplication] unregisterForRemoteNotifications];

    -application:didFinishLaunchingWithOptions: 方法中。然后,当用户登录时,注册远程通知。

    但是无论如何,如果应用程序被卸载并重新安装,它不会收到推送通知,直到-registerForRemoteNotifications 被调用,并且您必须在用户认证后才调用此方法。即使令牌与前一个相同,它也会与这个新用户相关联,您的服务器应该处理它。

    【讨论】:

    • 感谢您的回答!我改变了行动的顺序。 registerForRemoteNotifications 在用户认证之前调用,因为它需要新闻和营销人员。您对这种情况有什么建议吗?
    • 如果您的通知不是特定于用户的,那么问题出在哪里?
    • 当用户未注册时,我只想发送新闻/营销人员。但如果用户已签名,我想发送用户特定信息。
    • 然后,在application:didFinishLaunchingWithOptions 方法中,当您注册远程通知并将其发送到服务器时,您的服务器应从该令牌中删除先前关联的用户,并仅发送新闻/营销人员。用户身份验证后,只需使用您的登录请求再次发送该令牌。现在,您的服务器知道,此令牌用于新登录的用户,并将该令牌与此用户相关联,并且不仅会发送新闻/营销人员,还会发送其他推送。
    • 是的,有这样的方法可以解决这个问题。但是这种方式通过向服务器发送将删除随机令牌的请求来为攻击打开空间。我只是认为有一些动作序列,它们会强制设备/apns 重新生成令牌。或者还有另一种更优雅的方式来逃避可能的攻击并处理这种情况。非常感谢您的帮助! (也许您应该在答案中添加上层评论)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    相关资源
    最近更新 更多