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

Security 移动应用程序和LAMP之间的安全交易,security,transactions,lamp,mobile-devices,Security,Transactions,Lamp,Mobile Devices,我有一个移动应用程序(iPhone和Android),允许用户登录到他的帐户,更改优先权等 我想添加一个新功能,用户可以通过他的设备购买产品或升级服务。一切都将从设备上运行,我想让用户进行的每个事务与web服务器同步 我在服务器上安装了HTTPS。我想知道: 这是个好习惯吗?或者我应该简单地告诉用户使用我们的网站吗 如果“是”,仅HTTPS是否有助于处理这些事务 谢谢是的,这是一个很好的练习 首先,始终使用HTTPS。 确保您的证书有效且可信 对于iphone: NSString *encryp

我有一个移动应用程序(iPhone和Android),允许用户登录到他的帐户,更改优先权等

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

我在服务器上安装了HTTPS。我想知道:

  • 这是个好习惯吗?或者我应该简单地告诉用户使用我们的网站吗
  • 如果“是”,仅HTTPS是否有助于处理这些事务

  • 谢谢

    是的,这是一个很好的练习

    首先,始终使用HTTPS。

    确保您的证书有效且可信

    对于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:

    第二次加密您的数据。

    任何加密算法或rsa加密都可以做到这一点

    使用GET/POST传递数据不应以明文形式发送,如:?user=myuser&pass=mypass。而是使用类似于?H28JDUDAK30FT1PFGMNSHS762023LFLSFDJ2H4J的东西。然后在你的服务器上,你只需要用一种只有你的手机和服务器知道的盐来解密它

    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

    阅读更多