如何防止钥匙串项目不会添加到备份中?

问题描述 投票:0回答:3

如何防止钥匙串项目不会添加到备份中?以及加密备份? 当钥匙串(SecItem)项配置如下所示时,可以将该钥匙串项备份并恢复到另一台设备。

let query = [
    String(kSecClass) : kSecClassGenericPassword,
    String(kSecAttrService) : "SecAttrService",
    String(kSecAttrAccount) : "SecAttrAccount",
    String(kSecValueData) : mobileId,
]

那么,如何防止钥匙串项不被备份呢?

ios objective-c swift security
3个回答
3
投票

使用“ThisDeviceOnly”可访问性常量,最好是 kSecAttrAccessibleWhenUnlockedThisDeviceOnly :

https://developer.apple.com/library/ios/documentation/Security/Reference/keychainservices/#//apple_ref/doc/constant_group/Keychain_Item_Accessibility_Constants


0
投票

防止钥匙串无法备份使用

pod 'KeychainSwift', '~> 20.0'

让钥匙串 = KeychainSwift() keychain.set("Hello world", forKey: "key 1", withAccess: .accessibleWhenUnlockedThisDeviceOnly)

注:

只有当用户解锁设备时才能访问钥匙串项中的数据。

建议仅当应用程序位于前台时才需要访问的项目。具有此属性的项目不会迁移到新设备。因此,从不同设备的备份恢复后,这些项目将不存在。


-1
投票

只要数据不在应用程序目录中,这些数据就不会被备份,也可以在不备份的文件夹中设置标志,尝试类似下面

iCloud 的“文档目录”可以添加不备份吗

iOS - 将整个文档目录标记为不备份

© www.soinside.com 2019 - 2024. All rights reserved.