移动应用与LAMP之间的安全交易

11

我有一款移动应用(iPhone和Android),允许用户登录其帐户,更改偏好设置等...

我想添加一个新功能,让用户可以通过设备购买产品或升级服务。所有操作都将在设备上运行,我希望每个用户进行的交易都能同步到Web服务器。

我已在我的服务器上设置了HTTPS。我想知道:

  1. 这是一个好的实践吗?还是应该告诉用户使用我们的网站
  2. 如果“是”,仅使用HTTPS处理这些交易是否足够?

谢谢

1个回答

14

是的,这是一个好习惯。

首先,始终使用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。

阅读更多


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接