iOS应用登录最佳做法?

时间:2012-02-06 08:34:22

标签: objective-c ipad security authentication login

我正在使用Xcode 4.2中的iPad应用程序,我使用MySQL数据库验证我的用户。我想知道跟踪已登录用户的最佳做法是什么。

我可以在AppDelegate中创建一个变量,例如:

@interface beAppDelegate : UIResponder <UIApplicationDelegate>{
    BOOL *loggedin;
}
- (void)setLoggedin:(BOOL *)newLoggedin;

并在输入正确的用户名和密码时将该值设置为true?

或者我应该使用plist存储用户已登录的事实?

有人能告诉我最安全的方法吗?

1 个答案:

答案 0 :(得分:-2)

最佳做法是依靠已经为您完成此操作的操作系统,并避免展示您自己的用户界面进行登录。

iOS已经内置了身份验证机制,用于控制屏幕锁定,保护文件和钥匙串存储。用户可以设置(或他们的IT部门可以强制要求)任何复杂性的密码:iOS将管理呈现该UI,在成功输入密码时授予访问权限,并通过限制密码的速率和数量来阻止攻击者。此过程使用PBKDF2生成用于访问机密存储的解密密钥,因此,如果没有密码,则此存储在整个iOS和离线攻击中都是完全不可用的。除非你的系统复制了所有这些,否则你已经付出了更少的努力来提供更糟糕的实现。如果你确实复制了所有这些内容,那么你已经付出了很多努力来提供一个可能已经存在的错误版本的东西。

但更糟糕的是:我们还需要考虑呈现多个登录需求的用户体验。您的应用未在真空中使用 :您的客户在其设备上拥有各种其他应用,包括电子邮件和消息应用。如果他们担心任何该信息的机密性,他们可以配置iOS密码以保护所有 - 并且您的应用程序的密码提示变得多余且烦人。相反,如果他们不关心机密性,那么他们就不会设置密码,并且您的应用密码提示会变得意外,多余和烦人。