ios - 访问 token 持久性最佳实践 (iOS)

标签 ios iphone security xauth

Twitter 和 Facebook 等服务的访问 token 是否应该加密? 特别是, token 应该存储在设备的 Keychain 还是 UserDefaults 上?如果用户的设备被盗/拿走,可能会出现哪些安全问题

这是我到目前为止的想法。

钥匙串(keychain)的优点: 加密

缺点: 用户删除应用程序时无法清理

UserDefaults 的优点: 保存在应用内。

缺点: 没有加密。

最佳答案

您的 UserDefaults 'con' 需要修改:默认 不加密。您可以使用例如自己加密内容CommonCrypto,但它需要额外的工作来存储纯文本。

OAuth token 的意义在于,拥有该 token 的人无需提供凭据即可使用相关服务。因此,您应该像保护密码一样保护它,如果您不得不存储它,因为它具有相同的值。

如果用户的设备被盗,除非他们用密码锁定了他们的设备,否则窃贼有能力在您描述的任何一种情况下以用户身份使用您的应用。如果您不加密访问 token ,那么他们还有能力提​​取它并从他们控制的代码中重放它。

关于ios - 访问 token 持久性最佳实践 (iOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5793128/

相关文章:

ios - 应用程序扩展 iOS9 : How can I send a string/URL from the share view to my the app?

ios - 我如何使用 GLKMatrix4 将此实现转换为使用 CATransform3D

ios - 我的导航栏、警报标题和底部警报标题在整个项目中变成白色

php - php和javascript之间共享访问限制

python - Pythonista 如何在 App Store 限制下工作?

ios - 在 UIScrollView 中停止和启动视频

iphone - 通过 UIPasteBoard 在短信中粘贴图像

objective-c - 分配/初始化 View 、添加到 subview 和返回的正确内存管理模式

iphone - 在 iPhone 上自动测试游戏

mysql - 当我使用 $this->data 时,是否可以防止 MySQL 注入(inject)?