提问人:timh 提问时间:1/4/2017 更新时间:2/14/2019 访问量:2087
通过 iOS 深层链接传递身份验证令牌是否安全?
Is it safe to pass auth token via iOS deep link?
问:
我正在设计一个 webapp/mobileapp 安全流程,其中没有密码,只有通过短信发送到手机的身份验证令牌。这有什么缺陷吗?
计划:
- 手机收到带有嵌入式邀请令牌的短信链接
http://domain.com/invite/ABCD
- 用户点击,转到要求用户安装移动应用程序的 Web 应用程序(通过深层链接,传递相同的令牌
myapp://invite/ABCD
- 加载应用程序时,邀请令牌将发送到服务器并交换为 an 和 a 。
ABCD
auth token
session token
Auth token
永久存储在应用程序的本地存储中。Session token
用于连续的 API 调用,有效期为 24 小时,然后将再次用于交换新的Auth token
session token
+---+
| |
+---------+ <---------------------------------------------------+ |
| Invite | | S |
| Link | send invite | E |
| rec'd | +---------+ +--------+ token | R |
| via | |WebApp: | | +-----------------------> | V |
| SMS | |deep | | ios App| | E |
| +-> |linked +-> | | receiv auth & | R |
| (token) | |to mobile| | | session token | |
+---------+ |app | | | <----------------------+ | |
|(install)| | | | |
| | | | use session token | |
| | | | for all api calls | |
+---------+ +--------+ +---------------------> +---+
问题:
- 通过深度链接传递令牌是否安全?
- 看到此方案的任何其他缺陷了吗?
- 甚至需要身份验证/会话组合吗?理由是会话过期 24 小时,因为它在网络上暴露得更多,但由于它通过 ssl,也许我只需要一个永久存储并用于 api 身份验证的身份验证令牌?
答:
0赞
Philihp Busby
2/14/2019
#1
似乎它应该有效,但要注意您的用户体验。您不希望人们共享链接并进行未经授权的登录,而不是将其视为私人密码。让你的邀请链接只能使用一次,这将使它们类似于 Slack 使用的“魔术链接”模式,但我避免将其称为“邀请”,因为这些往往是你会给其他人的东西。
评论