Con*_*oob 17 security iphone authentication xcode ios
我正在构建一个iOS应用程序,用户使用我的Web服务进行身份验证.我不希望他们每次启动应用程序时都会登录(令牌持续一个月).所以我想把它缓存在某个地方的设备上.
安全地做到这一点的最佳方法是什么?
我可以依靠应用程序保持暂停并将令牌保留在"内存"中吗?
Lit*_*T.V 19
2个选项
NSUserdefaults对于存储用于认证目的的可靠值是不安全的.另一方面,Keychain是这样做的,安全可靠.
Vic*_*nin 10
您不能相信iOS会将您的应用程序永久保留在内存中.因此,您必须在某些时候将令牌保存到持久存储.
查看iOS的Keychain服务.这是存储密码,令牌和其他密钥等内容的最佳位置.
你不能"安全地"做到这一点.令牌是公共知识,一旦它在您的设备上,黑客可以获得访问它,无论您尝试做什么来保护它.把它放在钥匙串中不会改变这个事实.即使你把它存放在那里,这会使它在那里安全,它们可以简单地等到它到期,然后在下一次通过电线进入时阻止下一个.您访问令牌不是您需要担心的安全问题,因为事实上,您无法在移动环境中执行此操作.
这意味着您可以将它存储在任何您喜欢的地方.NSUserDefaults很好,钥匙串很好,数据库很好,文档目录中的文本文件很好.所有这些都是同样安全的,因为坚定的黑客可以简单地等待合适的机会访问他们想要的数据.您应该担心保护用户的身份验证凭据.确保将它们存储在钥匙串中,并且只能通过HTTPS与具有有效SSL证书的服务器通信.
| 归档时间: |
|
| 查看次数: |
16518 次 |
| 最近记录: |