假设我有一个iPhone应用程序通过PHP
API与服务器上的数据库通信,我在$_SESSION
(you know, this can be painful sometimes)中保存用户ID等问题时出现问题,所以或者,我可以将它存储在NSUserDefaults
或iPhone钥匙串中,并在需要时将其发送到服务器,在应用程序端而不是服务器端执行此类操作是否错误/不安全?
答案 0 :(得分:0)
NSUserDefaults
的As per this thread:在普通设备上你无法真正得到它,但如果它被越狱,plist文件很容易阅读和更改,它无论如何都不加密,所以它可能不安全的用户名,密码或任何个人信息,除非你保存它,你做一些加密哈希,然后保存。
另一方面,您可以尝试iOS Keychain or the iCloud Keychain。它说here:
这非常安全,因为任何尝试阅读iCloud Keychain的新设备都需要以下其中一项:
您现有的某个设备会通过手动接受的推送通知来验证连接。
在其他设备上启用iCloud Keychain时,使用iCloud Keychain的其他设备会收到请求批准其他设备的通知。批准其他设备后,您的iCloud Keychain会自动开始在该设备上进行更新。
您的iCloud安全码
当您设置iCloud Keychain时,系统会要求您创建iCloud安全代码。它可以是类似于设备密码锁的4位数代码,也可以为您自动生成更复杂的代码。 iCloud安全代码用于授权其他设备使用您的iCloud Keychain。它还用于验证您的身份,以便您可以执行其他iCloud Keychain操作,例如在丢失所有设备时恢复iCloud Keychain。
Entering the code incorrectly multiple times causes manual verification method
短信验证到您的手机。
使用您首次设置iCloud Keychain时提供的支持SMS的电话号码的设备。验证码通过短信发送到此电话号码。如果您无法访问此号码contact Apple Support,他可以验证您的身份,以便您可以在新设备上完成设置。
此外,您还可以protect your iCloud account / Apple ID by enabling two factor authentication,以便在许多情况下 - 首次在新设备上使用您的iCloud密码会触发推送通知警告以及Apple在您使用密码时发送的自动电子邮件一个新设备。
总结: