2014-03-18 102 views
0

假设用户忘记了自己的密码并要求通过电子邮件链接进行重置。该电子邮件可能包含一个URI链接来重置他们的密码。如果这是Android或iOS中的注册URI方案的URI,是否安全?自定义URL方案是否安全?

例如,如果URI已广播给侦听器应用程序,恶意应用程序是否可以使用此URI并在幕后重置原始站点用户的登录用户名和密码?

恶意应用程序是否可以注册以接收来自任何域的链接,或者是否存在限制? (iOS或Android)


更新:我谈论的深层链接是:

+0

这个问题是相当广泛 - “安全”的解决方案需要在应用和/或用户的需求的背景下进行评估 - 如果需要重置密码全部是访问密码重置链接并且该链接可能被拦截,那么你需要确定这是否可以接受你的情况。如果账户提供低价值信息(比如说聊天论坛),这可能就足够了。如果是银行网站,那么一旦他们访问重置链接,您可能会想要进一步询问用户。在iOS上,应用程序无法拦截电子邮件 – Paulw11

+0

我认为我滥用了深度链接。这对iOS开发人员和Web开发人员意味着不同的事情。我对自定义网址方案感兴趣。如MYAPP://路径/要/什么/我/想d =此%图20是%20A%20test 通过不安全的,我的意思是,在我的例子,我应该担心编码密钥或访问令牌? URI。对于网址,我认为这不是一个大问题(是的,在URL中编码访问令牌通常是安全的)。对于自定义URI方案,我不确定。已经更新了这个问题。 – user48956

回答

1

周围没有安全iOS中自定义URL方案的注册。 Apple的文档状态

如果有多个第三方应用程序注册处理相同的URL方案,那么目前还没有确定将该方案授予哪个应用程序的过程。

我不确定Android上的情况,但我怀疑它是相似的 - 该方案只是列在清单文件中。

对于有人利用这一点,他们需要

  1. 确定你的技术& URI格式
  2. 工艺的应用,以利用它
  3. 获取该应用程序到应用程序商店(站成苹果应用程序商店更棘手 - 应用程序实际上必须是一个'特洛伊木马' - 提供利用功能第二的一些主要价值
  4. 获取用户安装应用程序
  5. 等待用户忘记自己的密码

按我给你的问题的评论,您需要评估在你的应用的背景下,风险和什么帐户授予访问权限,但表面的可能性上的漏洞似乎很低

+1

对于Android,有一个'intent'方案用于通过应用程序ID(包名称)将URI映射到特定的应用程序意图,这些ID必须是唯一的才能在Play商店中使用:https://developers.google.com/chrome/移动/文档/意图 – jerluc

2

在Android设备上,如果多个应用程序使用相同的Deeplink URI方案注册,我相信您会收到一个选择器对话框。这允许用户选择哪些应用程序实际使用来解决深层链接URI和完成动作:

Complete action intent chooser dialog

不完全知道为什么的iOS没有选择来实现类似的东西,但我想像这是因为它有时会提供一些不方便和/或令人困惑的用户体验。