Я просто хочу узнать, безопасно ли отправка информации для входа через 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 (SSL-шифрованное HTTP-сообщение) для начала. Кроме того, отправка пароля в виде открытого текста - это то, что вы, возможно, захотите предотвратить. Вместо этого отправьте хешированную версию пароля и сравните ее на сервере с хешированной версией. Собственно, даже не храните пароли открытого текста на сервере, а только хешированные версии. – Till