Безопасная транзакция между мобильным приложением и LAMP - PullRequest
11 голосов
/ 02 ноября 2011

У меня есть мобильное приложение (iPhone и Android), которое позволяет пользователю войти в свою учетную запись, изменить настройки и т. Д. *

Я хочу добавить новую функцию, где пользователь может покупать товары через свое устройство или обновлять свой сервис. Все будет работать с устройства, и я хочу, чтобы все транзакции, которые пользователь совершает, синхронизировались с веб-сервером.

На моем сервере настроен HTTPS. Я хотел бы знать, если:

  1. Это хорошая практика? или я должен просто сказать пользователю использовать наш веб-сайт
  2. Если "да", то хорош ли HTTPS для обработки этих транзакций?

Спасибо

1 Ответ

14 голосов
/ 08 ноября 2011

да, это хорошая практика.

прежде всего ВСЕГДА используйте HTTPS.

убедитесь, что ваш сертификат действителен и надежен.

для iphone:

для 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'] и выполнить логику входа в систему (или другие)

вот еще один ресурс, который вам поможет:

Примечание: для Android вы должны взглянуть на HTTPComponents

читать дальше

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...