处理信用卡和IOS

我正在使用NSUrlConnectionasynchronous请求传输信用卡信息到安全的第三方服务器。

我做了以下几点:

  1. 我从uitextfields获得信用卡号,cvv等等。
  2. 将信用卡信息编码为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]]; 
  3. 通过asynchronous请求将此信息发送到安全的第三方服务器:

      [NSURLConnection sendAsynchronousRequest:request queue: queue completionHandler:^(NSURLResponse *response, NSData *data, NSError * requestError) { 

我应该考虑使用nsurlconnectionasynchronous请求将用户的信用卡信息发送给第三方服务器?

这是从移动应用程序发送信用卡信息的正确方法?

我能做些什么来阻止中间人的攻击?

根据你在做什么,你可能需要遵守PCI,PADSS等标准。

除了通过HTTPS进行通信之外,针对中间人攻击的一般stream程还包括:

  • 不要在设备上存储任何细节。 存储在RAM是好的。
  • 后端指示您使用许多预先获取的公用encryption密钥之一。 每个键都与一个ID关联。 您将获取指示您从本地商店使用的密钥。 您将使用该密钥创build一个散列的散列。 然后发送到后端。

为了encryption,我build议查看CoocaSecurity项目。 它包装了一些较低级别的API,使它们更容易“消化”(原谅双关语)。

您的请求看起来不错,只要确保您通过https访问,而不是http。 这意味着你的服务器必须支持https

假设你有一些安全的身份validationscheme的国王为您的Web服务,至less已经清除了基本知识。 你最大的弱点是HTTPS。 特别是在移动世界,HTTPS很容易被渗透。 我知道这听起来有点偏执,但你必须想方设法保持领先。

下一步是对请求的有效负载应用额外的encryption级别。 河豚将是一个简单和容易的方式来encryption有效载荷。