2016-07-20 7 views
3

ユーザーがにアクセスできないデータ(パスワードなど)を保存する最良の方法は、には表示されません。 NSUserDefaultsはMacのファイルに保存され、ユーザが操作して見ることができます。 Core Dataはどうですか?これもファイルに保存されていますか、またはユーザーにCore Dataが表示される方法はありますか?ユーザーの操作を避けるためにCore DataまたはNSUserDefaults?

+2

は、キーチェーンを使用して保存し、ユーザー名とパスワードを取得するには、キーチェーンサービスをIOSを使用する例を取得するには、このlinkを見ることができますSecurity/Conceptual/keychainServConcepts/iPhoneTasks/iPhoneTasks.html – pds

+1

はい、コアデータファイルに簡単にアクセスできます。最善の解決策は、必要としないデータを暗号化することです。 –

+0

キーチェーン用のラッパーがあります。https://cocoapods.org/pods/SSKeychain – markedwardmurray

答えて

12

NSUserDefaultsはプレーンテキストで保存されているため、パスワードの保存に絶対に使用しないでください。コアデータは暗号化できますが、デフォルトではありません。それは本当に読みやすいSQLiteデータベースにすべてのデータを格納します。パスワードはシステムキーチェーンに保存する必要があります。キーチェーンはSecurity Frameworkでアクセスできます。

キーチェーンを使用するライブラリがいくつかあります。たとえば、LocksmithまたはValetです。

1

@ esthepikingがKeychainを使用する提案に加えて、パスワードを保存するために独自の暗号化を実装すると、App Storeの「Export Compliance」要件の下でより多くの書類を提供する義務が生じる可能性があることに注意してください。このpostを参照してください。 https://developer.apple.com/library/mac/documentation/ -

関連する問題