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

发布于 2024-12-13 03:23:33 字数 260 浏览 0 评论 0原文

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

我想添加一个新功能,用户可以通过他的设备购买产品或升级他的服务。一切都将从设备运行,我想让用户的每笔交易都同步到网络服务器。

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

  1. 这是一个好的做法吗?或者我应该简单地告诉用户使用我们的网站
  2. 如果“是”,单独使用 HTTPS 是否可以很好地处理这些交易?

谢谢

I have a Mobile App (iPhone and Android) which allows user to login to his account, change prefs etc...

I want to add a new feature where the user can buy products through his device or upgrade his service. Everything will run from the device and I want to make each transactions the user make it syncs to the web server.

I have HTTPS setup on my server. I would like to know if:

  1. It is a good practice? or should I simply tell the user to use our website
  2. If "yes", is HTTPS alone good to process these transactions?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

忆沫 2024-12-20 03:23:33

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

首先始终使用 HTTPS。

确保您的证书有效且可信。

对于 iPhone:

对于 Android:

第二次加密您的数据。< /strong>

任何加密算法或 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

阅读更多内容

yes it's a good practice.

first of all ALWAYS use HTTPS.

make sure your certificate is valid and trusted.

for iphone:

for android:

second encrypt your data.

any encryption algorithm or rsa encryption will do the trick.

passing data using GET/POST should not be sent in plain text like: ?user=myuser&pass=mypass. instead use something like ?h28JduDak30fT1pfgmSnShNms762023lflsfdj2h4J. then on your server you simply have to decrypt it using a salt only your phone and the server knows.

example code for 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];

similar idea for android

then on your server you can decrypt $_POST['key'] and do your login logic (or others)

here's more resource that will help you:

note:
for android you shoud take a look at the HTTPComponents

read more

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文