gpt4 book ai didi

objective-c - 这些数据是否被安全地发送?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:23:56 24 4
gpt4 key购买 nike

我只是想看看这样通过HTTPBody发送登录信息是否安全?还是应该对用户名和密码进行编码?

NSString *myRequestString = [[NSString alloc] initWithFormat:@"username=%@&password=%@", _userName.text, _passWord.text];
NSData *myRequestData = [NSData dataWithBytes:[myRequestString UTF8String] length:[myRequestString length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString: @"http://website.com/ilogin.php"]];
[request setHTTPMethod: @"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
[request setHTTPBody: myRequestData];
[NSURLConnection connectionWithRequest:request delegate:self];
NSHTTPURLResponse *response;
NSError *err;
NSData *returnData = [ NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];
NSString *reply = [[NSString alloc] initWithData:returnData encoding:NSASCIIStringEncoding];
NSLog(@"responseData: %@", reply);
if (reply == @"Login Successful") {
_loginResponse = [NSString stringWithString:@"Successfully Logged In"];
} else if (reply == @"Incorrect Password") {
_loginResponse = [NSString stringWithString:@"Incorrect Username or Password"];
} else if (reply == @"LOGIN_ERROR_USERNAME") {
_loginResponse = [NSString stringWithString:@"Incorrect Username or Password"];
} else {
_loginResponse = [NSString stringWithString:reply];
}

最佳答案

这不安全。真正安全的唯一方法是使用 HTTPS,但这需要您支付证书费用,因为 iOS 不会连接到未经验证的 HTTPS 服务。

您可以通过对用户名和密码使用单向散列来提高安全性。基本上附加用户名、密码和所谓的“salt”值,它应该是您生成一次的随机序列,然后硬编码到您的应用程序中。

获得该字符串后,将 MD5 或 SHA1 等散列应用于该字符串,以获得您发送的无意义序列作为身份验证。

然后在服务器端循环遍历用户并对每个用户名和密码应用相同的算法,使用相同的盐值,然后查看结果是否与发送的内容匹配,这会告诉您用户是谁,但是不让任何监听的人知道他是谁。

为了更加安全,请在用户首次注册时应用该哈希值,并将哈希值而不是密码存储在您的数据库中,这样,如果您的网站遭到破坏,您就不必告诉所有用户他们需要更改密码(就像最近一些知名网站不得不更改密码一样)。

无论如何,将哈希存储在数据库中以供查找也更有效,因此您不必遍历所有记录并在每次有人登录时将哈希应用于每个记录。

关于objective-c - 这些数据是否被安全地发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8885176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com