在iOS中通过http提交密码的最佳做法是什么?

时间:2013-11-17 18:43:03

标签: ios http passwords

目前,虽然我一直在对应用进行原型设计,但我一直在做以下操作,我对url登录字符串进行硬编码,并使用sendSynchronousRequest将登录信息提交给该字符串。这是最佳做法吗?我怀疑我应该使用钥匙串为网址做些什么以及保护密码。

编辑:设置ssl是否足够?

NSString *url = @"http://host/login";
NSString *postString = [NSString stringWithFormat:@"email=%@&password=%@", email, password];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];
NSError        *error = nil;
NSURLResponse  *response = nil;
NSData *tryResponse = [NSURLConnection sendSynchronousRequest:request returningResponse:&response  error:&error];

2 个答案:

答案 0 :(得分:2)

也许您应该查看WSSE身份验证,您可以在其中发送加密的用户身份验证数据。 此外,发送同步请求并不好,因为您在发送请求时阻止整个应用程序。最佳做法是在不同于主UI线程的情况下使用异步调用。我强烈推荐AFNetworking库,因为它易于使用,结合多线程并且像魅力一样工作! https://github.com/AFNetworking/AFNetworking

答案 1 :(得分:1)

从应用程序的角度来看,机制很好。

但是通过http发送密码绝不安全。您需要一个像SSL这样的加密层。因此,使用SSL我不会发现任何问题。 (我在我的应用程序中使用了类似的机制,但通过SSL,我使用async api)。

但是,服务器确定它接受哪种身份验证以及不接受哪种身份验证。如果服务器只接受http。

,则通过https发送密码是没有意义的