ios - 处理信用卡和IOS

标签 ios objective-c

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

我做了以下事情:

  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. 通过异步请求将此信息发送到安全的第三方服务器:

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

使用 nsurlconnection 异步请求将用户信用卡信息发送到第三方服务器应该考虑什么?

这是从移动应用发送信用卡信息的正确方式吗?

如何防止中间人攻击?

最佳答案

根据您的工作,您可能需要遵守 PCI、PADSS 等标准。

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

  • 不要在设备上存储任何详细信息。存储在 RAM 中是可以的。
  • 后端指示您使用许多预取的公共(public)加密 key 之一。每个键都与一个 ID 相关联。您将从本地商店获取它指示您使用的 key 。您将使用该 key 创建 deta 的哈希值。然后发送到后台。

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

关于ios - 处理信用卡和IOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19483309/

相关文章:

objective-c - 将项目添加到 block 内的 NSMutableArray 时遇到问题

ios - 在 View iOS8 之间切换时的动画/过渡

iphone - 如何对 UILabel 的 textColor 进行动画处理?

objective-c - 如何将十六进制字符串转换为字节

ios - 如何在函数初始化后从函数中获取值?

objective-c - iOS 5 中的异步网络操作

ios - 有人知道如何修复选择器错误吗?

iphone - 排序/过滤 NSArray/NSMutableArray

ios - 将日历格鲁吉亚语更改为波斯语时,无法将类型 'NSLocale' 的值强制转换为类型 'Locale'

ios - 使用 Bool 通过 SwiftUI 动态过滤 @FetchRequest - 显示 true、false 或两者