移动应用程序和 LAMP 之间的安全交易

Posted

技术标签:

【中文标题】移动应用程序和 LAMP 之间的安全交易【英文标题】:Secure Transaction between Mobile app and LAMP 【发布时间】:2011-12-20 13:40:43 【问题描述】:

我有一个移动应用程序(iPhone 和 android),它允许用户登录到他的帐户、更改首选项等...

我想添加一个新功能,用户可以通过他的设备购买产品或升级他的服务。一切都将在设备上运行,我想让用户进行的每个事务都同步到 Web 服务器。

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

    这是一个好习惯吗?还是我应该简单地告诉用户使用我们的网站 如果“是”,单独使用 HTTPS 是否适合处理这些事务?

谢谢

【问题讨论】:

【参考方案1】:

是的,这是一个很好的做法。

首先始终使用 HTTPS。

确保您的证书有效且受信任。

对于 iPhone:

iPhone: HTTPS client cert authentication https://discussions.apple.com/thread/1652697?start=0&tstart=0

对于安卓:

Trusting all certificates using HttpClient over HTTPS Accepting a certificate for HTTPs on 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 + sending data from iPhone to server as XML format iPhone: HTTPS client cert authentication

注意: 对于 android 你应该看看 HTTPComponents

阅读更多

http://www.javamex.com/tutorials/cryptography/rsa_encryption.shtml http://www.edumobile.org/iphone/iphone-programming-tutorials/how-to-receive-data-from-the-server-in-iphone/

【讨论】:

以上是关于移动应用程序和 LAMP 之间的安全交易的主要内容,如果未能解决你的问题,请参考以下文章

Android应用安全

Android应用安全

Android应用安全

Android应用安全

阿里云移动研发平台EMAS,是如何连续5年安全护航双11的?

应用程序中的安全信用卡交易