Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
是否应该对 Twitter 和 Facebook 等服务的访问令牌进行加密?特别是,令牌应该存储在设备的 Keychain 上还是 UserDefaults 上?如果用户的设备被盗/被盗,可能会出现哪些安全问题
到目前为止,这是我想出的。
钥匙串的优点: 加密
缺点:当用户删除应用程序时无法清理
UserDefaults 的优点: 保留在应用程序中。
缺点:没有加密。
您的 UserDefaults 'con' 需要修改:默认情况下不加密。您可以使用例如 CommonCrypto 自己加密内容,但它需要额外的工作来存储纯文本。
OAuth 令牌的意义在于,拥有该令牌的人可以使用相关服务而无需出示凭据。因此,如果您必须存储密码,您应该像保护密码一样保护它,因为它具有相同的值。
如果用户的设备被盗,那么除非他们用密码锁定了他们的设备,否则小偷有能力在您描述的任何一种情况下以用户身份使用您的应用程序。如果您不加密访问令牌,那么他们还可以从他们控制的代码中提取并重放它。