Ответ 1
да, это хорошая практика.
прежде всего ВСЕГДА используйте HTTPS.
убедитесь, что ваш сертификат действителен и доверен.
для iphone:
- iPhone: проверка подлинности клиента HTTPS
- https://discussions.apple.com/thread/1652697?start=0&tstart=0
для андроида:
- Доверяйте всем сертификатам, используя HttpClient через HTTPS
- Принятие сертификата для HTTP на Android
зашифруйте ваши данные.
любой алгоритм шифрования или rsa-шифрование сделает трюк.
передача данных с использованием GET/POST не должна быть отправлена в виде обычного текста, например:? user = myuser & pass = mypass. вместо этого используйте что-то вроде: h28JduDak30fT1pfgmSnShNms762023lflsfdj2h4J. то на вашем сервере вам просто нужно расшифровать его, используя соль, только ваш телефон и сервер знает.
пример кода для iphone:
NSString *encrypteddata =[NSString stringWithFormat:@"key=enryptedstring"];
NSData *data = [encrypteddata dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSString *datalen = [NSString stringWithFormat:@"%d", [data length]];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:@"https://yourserver:443/loginscript"]]; //:443 very importantz
[request setHTTPMethod:@"POST"];
[request setValue:datalen forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:data];
аналогичная идея для android
то на вашем сервере вы можете расшифровать $_POST ['key'] и выполнить свою логику входа (или другие)
здесь больше ресурсов, которые помогут вам:
- iPhone + отправка данных с iPhone на сервер в формате XML
- iPhone: проверка подлинности клиента HTTPS
Примечание: для android вы посмотрите на HTTPComponents
подробнее