私はちょうど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