好的,我正在一个需要登录系统的iOS swift应用程序中工作。 一切正常,但我不确定它是否安全存储用户ID,应用程序将在登录后从服务器接收,用:
NSUserDefaults.standardUserDefaults().setObject(userid, forKey: "userid")
并使用此命令在每个视图控制器上获取此变量:
var userid: AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey("userid")
有办法开始会话吗?喜欢在php?
谢谢!
答案 0 :(得分:4)
NSUserDefaults
中的值以二进制格式存储在应用程序目录中,没有加密。所以它们很容易被篡改,因此不安全。
除非您创建会话,否则在iOS中没有会话的直接对应方。这意味着您可以在加密后将敏感信息存储在用户默认值中,或者您可以使用iOS Keychain直接存储它们(这将为您执行加密)。在iOS上使用Keychain有点复杂,但你可以找到它的包装。
请参阅此主题以获取示例:iOS: How to store username/password within an app?
还有关于raywenderlich的教程: http://www.raywenderlich.com/92667/securing-ios-data-keychain-touch-id-1password