我正在制作一个需要保存[Card]类型的数组的应用,其中card是结构:
struct Card : {
var image : UIImage? = nil
var name : String = ""
var titles : [String] = []
var data : [String] = []
}
考虑到数组包含信用卡号之类的数据,保留该数组的最佳方法是什么?
在XCode的Data Protection
标签下启用Capabilities
是否足够?目前,我正在使用Codable进行保存。
答案 0 :(得分:1)
敏感数据在云中不一定比在设备上更安全。设备可能会丢失,但是大多数数据泄露都是通过存储在云中的数据发生的。大型的信用卡号数据库比存储在设备上的单人信用卡信息更具吸引力。此外,从安全可靠的iOS设备(至少根据FBI)恢复数据非常困难。
也就是说,任何存储敏感信息的iOS应用程序都应拥有自己的安全层,高于设备提供的安全层,包括其自己的用户身份验证过程。
答案 1 :(得分:0)
不管造成这种情况的原因有很多,通过钥匙串来安全地在iOS上存储本地数据是一个很好的方法。设备会使用您的密码对其进行加密,即使未安装该应用程序也会将其保留下来,并在设备之间同步。对于初学者来说,API有点难以理解,因此https://github.com/kishikawakatsumi/KeychainAccess这样的包装器是入门的好工具。
答案 2 :(得分:0)
为了保存我们的应用程序敏感数据,我们应该使用 Apple 提供的安全服务。
钥匙串服务API 通过为您的应用提供一种将少量用户数据存储在称为钥匙串的加密数据库中的方法,可以帮助您解决这些问题。 在钥匙串中,您可以自由保存用户明确关心的密码和其他机密信息,例如信用卡信息,甚至是简短的敏感笔记。
您可以参考this link以获得有关使用Keychain Services API的详细说明。
答案 3 :(得分:0)
对此没有正确的答案,但是这是查看一个人对iOS安全性研究的好方法。如果您正在与一家银行进行面试,那么我几乎肯定会期望有人对此有所了解,但是所有公司都必须认真对待安全性,因此,这是我希望在答复中听到的理想话题清单: