我正在使用NSUrlConnection异步请求将信用卡信息传输到安全的第三方服务器。
我执行以下操作:
将信用卡信息编码为json格式。设置为NSURLConnection
请求的httpd正文如下:
NSDictionary * params = @{"creditCardNumber": @"4242....", @"cvv": @"455"....
NSURL * url = [[NSURL URLWithString: "https://www.example.com"];
NSMutableURLRequest * request = [[NSMutableURLRequest alloc] initWithURL: url];
[request setHTTPMethod: @"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody: [NSJSONSerialization dataWithJSONObject: params options: kNilOptions error: &parseError]];
通过异步请求将此信息发送到安全的第三方服务器:
[NSURLConnection sendAsynchronousRequest:request
queue: queue
completionHandler:^(NSURLResponse *response, NSData *data, NSError * requestError) {
我应该考虑使用nsurlconnection异步请求将用户信用卡信息发送到第三方服务器?
这是从移动应用发送信用卡信息的正确方法吗?
我该怎样做才能防止中间人受到攻击?
答案 0 :(得分:2)
根据您的行为,您可能需要遵守PCI,PADSS等标准。
除了通过HTTPS进行通信之外,针对中间人攻击的一般强化流程还包括:
对于加密,我建议您查看CoocaSecurity项目。它包含了一些较低级别的API,使它们更容易“消化”(原谅双关语)。
答案 1 :(得分:0)
您的请求看起来不错,只需确保您通过https访问而不是http。这意味着您的服务器必须支持https
答案 2 :(得分:0)
假设您的Web服务具有一定的安全认证方案,您至少已经清除了基础知识。你最大的弱点是HTTPS。特别是在移动世界中,HTTPS很容易被渗透。我知道这听起来有点偏执,但你必须想到这样才能保持领先。
下一步是对请求的有效负载应用额外的加密级别。 Blowfish是加密有效载荷的简单方法。