iphone - 在 Settings.bundle 中存储密码并使用 CFPreferencesCopyAppValue 获取的安全隐患

标签 iphone cocoa-touch security sdk settings.bundle

对于这个问题看似显而易见的问题,我深表歉意,但无论出于何种原因,我无法在 Apple 文档中找到有关 Settings.bundle 密码信息存储位置和方式的明确答案。我的问题:如果我需要为应用程序存储一些凭据,并且我使用 Settings.bundle,以便将密码输入到 Apple 设置区域中的 PSTextFieldSpecifier 文本字段中,IsSecure = YES,然后我使用从我的应用程序访问该值CFPreferencesCopyAppValue,从不将其写入 NSUserDefaults,仅通过网络安全地发送它,与在我自己的应用程序设置中使用钥匙串(keychain)存储和检索密码相比,该存储和检索方法的安全性如何?感谢您的投入。

最佳答案

CFPreferencesCopyAppValue 只是访问使用 NSUserDefaults 时获得的相同信息的 Core Foundation 方式。在安全性方面,功能完全相同。也就是说,它没有加密。它只有在被遮蔽的意义上才是安全的。 “正确”的答案是使用钥匙串(keychain)。

与此相反的是,许多应用程序使用 NSUserDefaults 来存储密码。您可能会争辩说,除非密码控制对任何有值(value)的信息的访问,否则不值得尝试使用钥匙串(keychain)。这让我想到了在“设置”应用程序中使用安全字段的第二个论点:钥匙串(keychain) API 很丑陋,而且至少根据我的经验,编写无错误的代码很棘手。

关于iphone - 在 Settings.bundle 中存储密码并使用 CFPreferencesCopyAppValue 获取的安全隐患,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1248575/

相关文章:

javascript - 从 iPhone 上的全屏 Web 应用启动移动版 Safari

ios - UITextFields 间歇性地不允许用户交互

iphone - 无法从异步 block 向主线程发送参数

security - 如何在 Haskell 中对字符串的 SHA256 哈希进行 Base64 UrlEncode?

model-view-controller - 需要用户登录的 MVC 页面

iphone - 在 ARC 下收到内存警告时,我应该将强 IBOutlet 设置为 nil 吗?

iphone - iPhone OS 上的 NSDate dateByAddingTimeInterval 在哪里?

c# - 存储 key 的最佳实践

iphone - 使用捏合手势缩放 UIImageView 时出现问题

ios - 用 UINavigationController 中的另一个 View 正确替换顶 View